мне нужно рассчитать доход за текущий год и предыдущий год, мой желаемый результат заключается в следующем:Как рассчитать доход за предыдущий год в моем запросе?
Date revenue_current revenue_previous
January-2017 350 450
December-2016 750 250
November-2016 4550 4230
(Предыдущий доход год в том же месяце в прошлом году)
данных:
SaleDate_Yr | SaleDate_Pd | Revenue
2017 1 100
2017 1 200
2017 1 300
2016 11 100
2016 11 50
2017 1 50
2016 12 50
2016 12 50
2016 1 100
2015 11 300
2015 12 520
2016 1 100
(Номера доходов не складываются в желаемый результат или данные образца, пожалуйста, притворитесь ими).
Мой запрос до сих пор:
SELECT (CONVERT(varchar(10), SaleDate_Pd) + '-' + '2017') AS sale_pd,
SUM(CASE WHEN SaleDate_Yr IN ('2017') THEN Total_Revenue ELSE 0 END)
as revenue_ty,
SUM(CASE WHEN SaleDate_Yr IN ('2016') THEN Total_Revenue ELSE 0 END) as revenue_ly
FROM
[sales].[dbo].[mycompany]
WHERE
SaleDate_Yr IN ('2016', '2017')
AND
SaleDate_Pd IN ('11','12','1')
GROUP BY (CONVERT(varchar(10), SaleDate_Pd) + '-' + '2017')
Это, кажется, работает прекрасно, если я смотрю на продажи с января 2017 года по декабрь 2017. Однако иногда я хочу посмотреть на определенный период времени, например ноября 2016 года, декабрь 2016 года , Январь 2017 года, поэтому показатель предыдущего года не будет работать в ноябрьские и декабрьские даты, а также появится в ноябре-2017 году в столбце даты, где я добавляю год до конца. Я вручную добавил год, потому что, если бы у меня не было отдельных строк за каждый год, а цифры текущего года и предыдущего года не появлялись бы в одной строке.
Было бы полезно, если бы вы могли предоставить некоторые примеры данных и результаты, которые вы ожидали бы от того, что, например, данные. –
Я не понимаю этого предложения: «Номера доходов не складываются в желаемом выпуске или данные образца, пожалуйста, притворяйтесь, что они делают». Какой номер должен отображаться на выходе, если они не суммируются? –
@StefanSteinegger Я только что составил некоторые случайные входные данные, это не добавило бы желаемого результата, если бы вы добавили его, это было бы в реальных живых данных, это было просто для быстроты при объяснении вопроса. – 80gm2