私のクエリは2つのサブテーブルから2つの列の不正確な合計を返します。私はGoogle上で検索し、stackoverflowで提案を見ました。複数の結合を使用すると誤った結果を返すMysql sumクエリ
si_invoices
-----------------------------
id, date
1, 2014-05-07
si_invoice_items
-----------------------------
id, invoice_id, date , total
1, 100, 2014-05-07, 200
2, 100, 2014-05-07, 200
si_payment
-----------------------------
id, ac_inv_id, date , payment
1, 100, 2014-05-07, 100
2, 100, 2014-05-07, 200
SELECT SI.*,SUM(SII.total) as total,SUM(SIP.payment) as payment FROM
(SELECT * FROM si_invoices GROUP BY si_invoices.id) AS SI
LEFT JOIN si_invoice_items SII ON SII.invoice_id = SI.id
LEFT JOIN si_payment SIP ON SIP.ac_inv_id = SII.invoice_id
GROUP BY SI.id
sqlの 'total'フィールドでは400合計を返しますが、 'payment'と同じ800を返します。私の質問でエラーが何であるかを教えてください。助けていただければ幸いです。
おかげ M.S
は、私はすでに望ましい結果を説明したい期待される結果 –
を示しました。その質問を行ってください。それは合計として400を返しますが、実際には800を返しています。 –
1.SELECT * FROM si_invoices GROUP BY si_invoices.idは構文エラーを出す必要があります。 Group Byには列が1つしかなく、複数の列をフェッチしようとしています。 – Kapil