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」という列がある、。サブクエリを作成しようとしましたが、これはTotalAmount列全体の値を返しますが、日ごとには分類されていません。
このように [〜#〜] case [〜#〜] で試してください:
SUM(CASE
WHEN PaymentType = "credit card"
THEN TotalAmount
ELSE 0
END) AS CreditCardTotal,
あなたが探しているものを与える必要があります...
これはどう?
SUM(IF(PaymentType = "credit card", totalamount, 0)) AS CreditCardTotal