我的查询返回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