我目前有這樣的代碼,我想根據年份總結每個數量。我寫了一個代碼,我認爲它會在2016年和2017年總結所有費用,但它運行不正確。總和基於日期
我添加了兩種不同類型的partition by
語句來測試,看看是否有效,他們不會。當我把它們拿出來時,「年鑑」專欄只給我顯示特定收據的數量。
這裏是我當前的代碼:
SELECT
ReceiptNumber
,Quantity
,Date
,sum(CASE WHEN (Date >= '2016-01-01' and Date < '2017-01-01') THEN
Quantity
ELSE 0 END)
OVER (PARTITION BY Date)
as Annual2016
,sum(CASE WHEN (Date >= '2017-01-01' and Date < '2018-01-01') THEN
Quantity
ELSE 0 END)
OVER (PARTITION BY ReceiptNumber)
as Annual2017
FROM Table1
GROUP BY ReceiptNumber, Quantity, Date
我想我的數據看起來像這樣
ReceiptNumber Quantity Date Annual2016 Annual2017
1 5 2016-01-05 17 13
2 11 2017-04-03 17 13
3 12 2016-11-11 17 13
4 2 2017-09-09 17 13
下面是一些數據的樣本,我從拉:
ReceiptNumber Quantity Date
1 5 2016-01-05
2 11 2017-04-03
3 12 2016-11-11
4 2 2017-09-09
5 96 2015-07-08
6 15 2016-12-12
7 24 2016-04-19
8 31 2017-01-02
9 10 2017-0404
10 18 2015-10-10
11 56 2017-06-02
你可以添加一些數據樣本? – Horaciux
使用臨時表或VALUES作爲測試數據 –
刪除'PARTITION BY'。即'OVER()',您已經過濾了CASE中的年份) – dnoeth