[英]Show two different sum columns based on a single column
根據另一列顯示兩個不同的總和列。
對於此表:
ID Item Quantity Location
1 1 10 A
2 1 10 B
3 1 10 A
4 2 10 A
5 2 10 A
6 2 10 B
7 3 10 A
8 3 20 A
我需要查看位置 A 和位置 B 的總數量(比較哪個更高),但僅適用於位置 B 的項目:
預期結果:
Item Quantity A Quantity B
1 20 10
2 20 10
我一直在嘗試這個但收到錯誤:
SELECT st.item, st.qty ALIAS(stqty),
(SELECT SUM(dc.qty)
FROM table dc
WHERE st.item = dc.item) ALIAS(dcqty))
FROM table st
WHERE location ='b'
顯然,我可以通過兩個查詢輕松地做到這一點,但我希望有一種方法可以做到這一點。
您可以使用 sum with case 語句來執行您的 pivot 然后必須排除 b 沒有總計的行
這是小提琴https://www.db-fiddle.com/f/rS8fgvWoFxn879Utc2CKbu/0
select Item,
sum(case when Location = 'A' then Quantity else 0 end),
sum(case when Location = 'B' then Quantity else 0 end)
from myTable
group by Item
having sum(case when Location = 'B' then Quantity else 0 end) > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.