簡體   English   中英

基於單個列顯示兩個不同的總和列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM