2015-04-12 40 views
2

我有以下查詢:SUM和減去結果取決於由列結果在MySQL查詢

SELECT cashtransactionstatus_id, SUM(cashtransaction_amount) AS cashtransaction_amount 
    FROM cash_transactions 
    WHERE cashpaymenttype_id = 1 
    GROUP BY (cashtransactionstatus_id); 

該查詢返回:

enter image description here

如何我只能返回一個位數endtotal減法總和取決於列cashtransactionstatus_id?例如:

SUM Status(1,3): 1195.00 as col1

SUM Status(2,4,5): 430.00 as col2

然後show (col1 - col2) AS endtotal= 765.00

謝謝

回答

0

可以使用條件集合體:

SELECT SUM(CASE WHEN cashtransactionstatus_id IN (1,3) THEN cashtransaction_amount END) - 
     SUM(CASE WHEN cashtransactionstatus_id IN (2,4,5) THEN cashtransaction_amount END) AS endtotal 
FROM cash_transactions 
WHERE cashpaymenttype_id = 1 

SQL Fiddle Demo

+0

謝謝你的朋友! –