select Item,
sum(case when WareHouse='X' then Quantity else 0 end) as X,
sum(case when WareHouse='Y' then Quantity else 0 end) as Y
from table
group by Item
※ 引述《razer (還是一個人)》之銘言:
: (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
: 資料庫名稱:
: NetSuite, 算是Oracle底下的吧
: 資料庫版本:
: 內容/問題描述:
: 庫存資料表約略如下
: Item WareHouse Quantity
: A X 2
: A Y 0
: B X 1
: B Y 3
: C X 4
: 希望用SQL讀出來可以讀成
: Item X Y
: A 2 0
: B 1 3
: C 4
: 感覺很簡單,寫成以下
: select Item,X=case when WareHouse='X' then Quantity else NULL end,
: Y=case when WareHouse='Y'then Quantity else NULL end from table
: 一如想像會形成
: Item X Y
: A 2
: A 0
: B 1
: B 3
: C 4
: 可是如果將SQL改成
: select Item,sum(X=...),sum(Y=...) from table group by Item
: (恕我將以上那一串case簡略)
: 會回報語法有錯
: 再將SQL改成
: select Item,X=sum(...),Y=sum(...) from table group by Item
: 會直接回報failed to retrieve data,看來不是語法有錯?
: 想請問錯誤可能會發生在哪裡?或者我根本就用了不好的寫法?