我有以下表格测试
id Actual Budget CA RUB_ID
-------------------------------------------
1 20 30 201 902
1 2 330 202 902
1 220 130 207 90
1 21 30 20 12
如何获得以下结果
Actual Budget CA
20 130 12
如果RUB_ID = 902,我需要总和实际,如果RUB_ID = 90,则需要预算总和,如果RUB_ID = 12则总和CA
select
id,
case
when RUB_ID = 902 then sum(Actual) AS Actual
else case
when RUB_ID = 90
then sum(Budget) as Budget
else case
when RUB_ID = 12 then sum(CA) as CA
FROM
TEST
group by
id
查询没有返回我要查找的内容,我该如何修改呢?
答案 0 :(得分:3)
将您的案例陈述放在和函数
中select
sum(case when RUB_ID = 902 then Actual else 0 end) Actual,
sum(case when RUB_ID = 90 then Budget else 0 end) Budget,
sum(case when RUB_ID = 12 then CA else 0 end) CA
from test where RUB_ID IN (902,90,12)
如果你想通过id
获得这些结果select
id,
sum(case when RUB_ID = 902 then Actual else 0 end) Actual,
sum(case when RUB_ID = 90 then Budget else 0 end) Budget,
sum(case when RUB_ID = 12 then CA else 0 end) CA
from test where RUB_ID IN (902,90,12)
group by id
答案 1 :(得分:2)
这样的事情:
SELECT
id
, SUM(CASE RUB_ID WHEN 902 THEN Actual ELSE 0 END) as Actual
, SUM(CASE RUB_ID WHEN 90 THEN Budget ELSE 0 END) as Budget
, SUM(CASE RUB_ID WHEN 12 THEN CA ELSE 0 END) as CA
FROM TEST
GROUP BY id