2016-09-15 517 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为您提供快速帮助!查询结果是所需的。 –