假設有數據象下面這樣:(Oracle)如何根據其他列中的值獲取SUM值?
ID Name Cost
ID1 A 10
ID1 A 60
ID1 B 20
ID1 C 20
ID2 B 10
ID2 B 50
ID2 C 50
ID3 B 5
在這裏,在上表中,ID和NAME不是唯一的。 我想根據NAME以SUM值,因此該預期的結果如下圖所示:
ID A_Costs B_Costs C_Costs AB_Costs
ID1 70 20 20 90
ID2 60 50 60
ID3 5 5
A_Cost,B_Costs和C_Costs是成本時的名稱是A,B或C. 但是我做當名字是A和B時,如果我想要獲得成本,那該怎麼辦? 所以我試圖做的是:
Select t2.ID,
SUM(DECODE (t2.name, 'A', t2.Cost, null)),
SUM(DECODE (t2.name, 'B', t2.Cost, null))
--(select sum(t1.cost) from table t1. where t1.name in ('A','B') and t1.id = t2.id)
from table t2
group by t2.id
但是,這是行不通的。 當我的名字是A和B時,我如何獲得成本?有沒有什麼有效的方法在一個查詢中獲得這樣的值?
預先感謝您。