SUMに複数のIF条件を持つレポートのクエリを作成しています。SUMに複数のIF条件をつけると問題が発生するのですが、どうすればよいでしょうか?
以下、クエリです:
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文を追加しようとすると:
SUM('TotalAmount'(PaymentType = "credit card", 1,0)) AS CreditCardTotal,
この条件付きIF文はフェイルアウトします。
私は 'TotalAmount' というカラムと 'PaymentType' というカラムを持っており、各日ごとのクレジットカード取引のSUM、各日ごとの小切手取引のSUM、各日ごとのPaypal取引のSUM、を作成したいと考えています。 サブクエリを作成しようとしましたが、これはTotalAmountカラム全体の値を返すもので、日ごとに分解されるものではありません。