0

私は次の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

????

4

1 に答える 1