我需要計算收入的當年和前一年,我期望的輸出是這樣的:如何在我的查詢中計算去年的收入?
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年11月,2016年12月,2017年1月,因此上一年的數字在11月和12月不適用,並且在我將年份追加到年底的日期欄中顯示爲2017年11月。我手動添加了一年,因爲如果我沒有,我每年都有單獨的行,並且當年和上年的數字不會出現在同一行上。
將是有益的,如果你能提供一些示例數據和你會從示例數據所期望的結果。 –
我不明白這句話:「收入數字不加在所需的輸出或樣本數據中,請假裝他們這樣做」。當他們沒有總結時,輸出中應該顯示什麼數字? –
@StefanSteinegger我只是編寫了一些隨機的輸入數據,如果你添加了它,它將不會加到你想要的輸出上,它會在實際的實時數據中,這只是爲了快速解釋問題。 – 80gm2