2016-03-03 58 views

回答

1

如果信用是積極和借方是負的,那麼就這樣做:

SELECT SUM(amount), 0) 
FROM t 
WHERE user_id = 1; 

如果他們都是積極的,你可以這樣做:

SELECT SUM(CASE WHEN type = 2 THEN -amount ELSE amount END) 
FROM t 
WHERE user_id = 1 

(假設類型= 1是信用和類型= 2是借方。)

如果你想要全部用戶,只需將WHERE子句更改爲GROUP BY user_id即可。

編輯:要回答你的問題有關任何條目給定用戶:也許它應該返回NULL如果你問的是誰沒有在表中的用戶(例如,作爲左的一部分加入?) ,但如果你真的想要零,你可以說COALESCE(SUM(...), 0)

+0

感謝您的快速響應。如果沒有任何特定用戶的條目,它將返回NULL。如何在沒有用戶輸入的情況下返回0.00? –

0
SELECT user_id, 
     SUM(CASE WHEN type = '0' THEN 1 ELSE 0 END) totalDebit, 
     SUM(CASE WHEN type = '1' THEN 1 ELSE 0 END) totalCredit 
    FROM table 
GROUP BY user_id 
+0

我看起來像這樣計算的用戶有多少次了信用卡或借記卡,但我相信這個問題是問如何計算的當前餘額。 –

0

嘗試此查詢

SELECT user_id, 
    SUM(CASE WHEN type = '1' THEN amount ELSE 0 END) totalDebit, 
    SUM(CASE WHEN type = '0' THEN amount ELSE 0 END) totalCredit 
FROM table 
GROUP BY user_id 
相關問題