私は次のSQLを持っています:
SELECT
t.amount
FROM
transactions t
JOIN contracts c ON t.contractId = c.id
JOIN insertions i ON c.id = i.contractId
JOIN magazines m ON i.magazineId = m.id
WHERE m.id = 26
AND t.isChargedBack IS FALSE
AND t.`timestamp` >= '2013-09-12'
AND t.`timestamp` <= date_add('2013-09-12',interval 1 month)
GROUP BY
t.id;
どちらが得られますか:
1100
800
1025
500
1200
552
395
395
1170
1000
675
この結果の SUM のみが必要です。私は8812を期待しています。
そこで、次の SQL を使用します。
SELECT
IFNULL(SUM(t.amount),0)
FROM
transactions t
JOIN contracts c ON t.contractId = c.id
JOIN insertions i ON c.id = i.contractId
JOIN magazines m ON i.magazineId = m.id
WHERE m.id = 26
AND t.isChargedBack IS FALSE
AND t.`timestamp` >= '2013-09-12'
AND t.`timestamp` <= date_add('2013-09-12',interval 1 month)
GROUP BY
t.id;
そして、これが私の結果です:
39600
9600
61500
9000
43200
49680
14220
5925
7020
36000
72900
????