[英]sum values with sql server
我有下表測試
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
該查詢未返回我要查找的內容,該如何修改?
將您的case語句放入sum函數中
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
像這樣:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.