[英]CASE WHEN in other columns [closed]
我有这样的数据
年 | 月 | 类别 | ID | 成本 |
---|---|---|---|---|
2021 | 1 | 一个 | 1 | 10 |
2021 | 1 | 一个 | 2 | 5 |
2021 | 1 | 一个 | 3 | 4 |
2021 | 1 | 乙 | 4 | 3 |
2021 | 1 | 乙 | 5 | 2 |
2021 | 1 | C | 6 | 12 |
2021 | 1 | C | 7 | 8 |
我尝试使用 CASE WHEN 将类别与其他列相加,但我的代码(如下)返回 NULL-s 并且仅适用于一个类别。
SELECT
YEAR(the_date)
,month(the_date)
,CASE WHEN Category IN (N'A','B') THEN SUM(Cost) END Category_1_Cost
,CASE WHEN Category = 'C' THEN SUM(Cost) END Category_2_Cost
,CASE WHEN Category = 'D' THEN SUM(Cost) END Category_3_Cost
FROM
Base
GROUP
BY YEAR(the_date), month(the_date) , Category
用这个
SELECT
YEAR(the_date)
,month(the_date)
,CASE WHEN Category IN ('A','B') THEN SUM(Cost) ELSE 0 END Category_1_Cost
,CASE WHEN Category = 'C' THEN SUM(Cost) ELSE 0 END Category_2_Cost
,CASE WHEN Category = 'D' THEN SUM(Cost) ELSE 0 END Category_3_Cost
FROM
Base
GROUP
BY YEAR(the_date), month(the_date) , Category
结果:
(无列名) | (无列名) | 类别_1_成本 | 类别_2_成本 | 类别_3_成本 |
---|---|---|---|---|
2021 | 1 | 19 | 0 | 0 |
2021 | 1 | 5 | 0 | 0 |
2021 | 1 | 0 | 20 | 0 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.