繁体   English   中英

其他列中的案例[关闭]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM