我想计算YTD(2016年1月1日至最后一个月的日期)&每个客户的上一年度(2015年1月1日至一个月的最后一个日期)。
下面是我尝试过的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 :(得分:0)
从YEAR([Purchase_Date])
部分删除GROUP BY
。
此外,而不是:
(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”专栏也是如此。