2016-09-15 5 views
0

Я хочу рассчитать YTD (1 января 2016 года до последней даты месяца) & Пред. Год с начала года (с 1 января 2015 года до последней даты месяца) для каждого Клиента.рассчитать YTD & Prev Year 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

Удалить 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'

И то же самое для столбца '' с начала года.

+0

Спасибо Tomaz за вашу быструю помощь! Результат запроса по желанию. –

Смежные вопросы