我的查詢返回2個子表的2列不正確的總和,我搜索谷歌,也看到了對stackoverflow的建議,但他們從來沒有工作。Mysql總和查詢返回不正確的結果,當使用多個連接
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
它應該返回400總和字段'總'在SQL中,但它返回800和'付款'相同。你能指出我的查詢中有什麼錯誤。請幫助,感激。
感謝 M.S
顯示預期的結果,你想 –
我已經解釋期望的結果。請通過這個問題。它應該返回400作爲總和,但它實際上返回800. –
1.SELECT * FROM si_invoices GROUP BY si_invoices.id必須給出語法錯誤。 「分組依據」只有一列,並且您嘗試獲取多個列。 – Kapil