[英]Case statement without null value
我正在尝试比较 YOY 数据,并且我正在尝试使用 case 语句来按年份拆分。 我一直在尝试做的是
(Case
When year(date) = 2010 Then 'sales year 2010'
When year(date) = 2011 Then 'sales year 2011'
Else
End) as Year
但上述一个不起作用,因为我想按列获取每年的数据,而不是作为同一列下的行。
所以,接下来我尝试的是
(Case
When year(date) = 2010 Then sum(sales) End) as 'sales year 2010',
(Case
When year(date) = 2011 Then sum(sales) End) as 'sales year 2011'
我得到了下面的。
物品 | 2010年销售年 | 2011年销售年 |
---|---|---|
一个 | 无效的 | 2,500 |
一个 | 5,000 | 无效的 |
乙 | 无效的 | 200 |
乙 | 7,000 | 无效的 |
C | 无效的 | 2,500 |
C | 5,000 | 无效的 |
D | 无效的 | 200 |
D | 7,000 | 无效的 |
我想要得到的是这个。
物品 | 2010年销售年 | 2011年销售年 |
---|---|---|
一个 | 5,000 | 2,500 |
乙 | 7,000 | 200 |
C | 5,000 | 2,500 |
D | 7,000 | 200 |
有人可以建议怎么做吗?
谢谢。
您想在这里总结CASE
表达式:
SELECT
Item,
SUM(CASE WHEN year = 2010 THEN sales ELSE 0 END) AS [Sales Year 2010],
SUM(CASE WHEN year = 2011 THEN sales ELSE 0 END) AS [Sales Year 2011]
FROM yourTable
GROUP BY Item;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.