我需要從同一個表中獲取查詢結果的差異。獲取同一表中兩個和的差值
例:myTable的
id code status amount
1 A active 250
2 A active 200
3 B active 300
4 B active 100
5 A active 100
6 C active 120
7 C active 200
我想量的總或總和每個代碼(添加如果活躍,減如果未激活狀態),這樣我會有這樣的結果:
code total amount
A 150
B 400
C 80
我已經嘗試了很多,其中之一是這樣的:
SELECT code, amount1-amount2
FROM (
SELECT code, SUM(amount) AS amount1
FROM mytable
WHERE status='active'
GROUP BY code
UNION ALL
SELECT code, SUM(amount) AS amount2
FROM mytable
WHERE status='inactive'
GROUP BY code
) as T1
GROUP BY code
建立一個[小提琴](HTTP:/ /www.sqlfiddle.com)並與其一起玩 – hd1
將樣本數據與期望的輸出一起包括在內是好的,但如果期望的輸出實際上是從樣本數據中導出的,則會更好。 (在這種情況下,它不可能是因爲集合中沒有'無效'行)。 – jpw
您的描述與所提供的示例不符。看起來你實際上減去了一些*活躍*金額。請澄清你的問題。 –