我正在爲SUM上的多個IF條件構建查詢。我在SUM上遇到了多個IF條件問題。帶IF條件的MYSQL求和查詢
下面是該查詢:
SELECT SUM(`totalamount`) AS Total,
SUM(`PayPalFee`) AS Fees,
DATE(`TransactionDate`) AS `Day`,
SUM(IF(PaymentType = "paypal", 1,0)) AS Paypal,
SUM(IF(PaymentType = "check", 1,0)) AS Checks,
SUM(IF(PaymentType = "credit card", 1,0)) AS CreditCard,
COUNT(*) AS Entries
FROM my_table
WHERE TransactionDate between '2011-05-05' AND '2012-01-30'
GROUP BY day
ORDER BY `day` ASC
此查詢的工作就好了。
當我嘗試添加以下條件求和聲明:
SUM('TotalAmount'(PaymentType = "credit card", 1,0)) AS CreditCardTotal,
此條件IF語句失敗了。
我有一個名爲'TotalAmount'的列和一個名爲'PaymentType'的列我期待每天創建信用卡交易的SUM,每天支票交易的總和,PayPal的SUM每天的交易。 我試圖創建一個子查詢,但是這會返回整個TotalAmount列的值,而不是按天細分。
太棒了!謝謝,我不能接受,但我會。 – 2012-01-04 18:40:50
@aleroot'SUM(CASE WHEN .. THEN .. ELSE .. END)'和'SUM(IF(..,..,..))'之間有什麼區別,當我只想檢查一個條件如果一些布爾字段是1)?我的意思是,哪一個應該更快? – NHG 2014-02-10 13:36:53
可以這樣做,如果例如:SUM(IF(PaymentType =「creditcard」,TotalAmount,0)AS CreditCardTotal,' – George 2014-06-05 14:34:08