0

問題: 最初の請求書が作成されてから最初の 15 日間に作成された請求書の合計金額を返したい

請求表:

ClientID  InvoiceDate  InvoiceAmt
--------  -----------  ----------
150       1/15/2012    150
150       1/25/2012    1200
150       2/10/2012    800
250       1/12/2012    950
250       1/26/2012    1050
250       2/05/2012    1250
400       1/10/2012    500
400       1/26/2012    700


したがって、それぞれに対して作成される最初の請求書は次のとおりです。

150 = 1/15/2012
250 = 1/12/2012
400 = 1/10/2012


ここで、最初の請求日から 15 日後を計算したいと思います。したがって、計算は次のように返されます。

150 = 1/30/2012
250 = 1/27/2012
400 = 1/25/2012


ここで、適切な日付範囲の InvoiceAmt を合計するクエリが必要です。

150 = 1350
250 = 2000
400 = 500


何か案は ?

4

1 に答える 1

2

以下を使用できます ( SQL Fiddle with Demoを参照)。

select i1.clientid
    , sum(invoiceamt) as Total
from invoice i1
inner join
(
    select clientid, min(invoicedate) mindate
    from invoice i
    group by clientid 
) i2
    on i1.clientid = i2.clientid
where i1.invoicedate between i2.mindate and dateadd(d, 15, mindate)
group by i1.clientid
于 2012-07-23T16:44:53.650 に答える