繁体   English   中英

计算年初至今和上一年年初至今

[英]calculate YTD & Prev Year 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

请帮助!

谢谢,拉梅什

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”列相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM