2016-09-15 511 views
0

我要計算年度至今(2016年1月1日至一個月的最後一個日期)&對於每個客戶,上年(2015年1月1日至一個月的最後一個日期)。計算YTD和上年YTD

下面是我嘗試過的SQL查詢,但是在這裏我爲每個客戶端獲取兩行而不是1,因爲我使用'CASE WHEN'。

我的問題是我怎麼能得到每客戶端只有一行的結果而不是一行YTD & YTD-1的另一行?

SELECT [ClientName] 
, (CASE WHEN YEAR([Purchase_Date]) = YEAR(GETDATE())-1 THEN (count(Activity)) end) AS 'YTD-1' 
, (CASE WHEN YEAR([Purchase_Date]) = YEAR(GETDATE()) THEN (count(Activity)) end) AS 'YTD' 
FROM Purchases 
WHERE MONTH([Purchase_Date]) <= MONTH(GETDATE()) 
GROUP BY [ClientName], YEAR([Purchase_Date]) 
ORDER BY 1 

請幫助!

謝謝, 拉梅什

回答

0

GROUP BY部分刪除YEAR([Purchase_Date])

此外,而不是:

(CASE WHEN YEAR([Purchase_Date]) = YEAR(GETDATE())-1 THEN (count(Activity)) end) AS 'YTD-1'

使用:

count(CASE WHEN YEAR([Purchase_Date]) = YEAR(GETDATE())-1 THEN Activity else NULL end) AS 'YTD-1'

與同爲 'YTD' 列。

+0

感謝Tomaz爲您提供快速幫助!查詢結果是所需的。 –