带内连接的SQL查询

时间:2016-08-02 17:46:43

标签: mysql

我正在尝试在SQL中运行此查询:

SELECT c.company, sum(i.grand_total) FROM billing_invoices i 
INNER JOIN billing_salesman_commission b ON i.invoice_number = b.invoice
INNER JOIN customer c ON i.customer_sequence = c.sequence 
WHERE 
i.status = 'Unpaid' and DATE(i.datetime) >= '2015-10-01' 
GROUP BY c.sequence

返回正确的数据,但是它移动了grand_total列的小数点,它总结了

例如,当我运行SELECT sum(grand_total) from billing_invoices WHERE customer_sequence = '270'时,它会返回35.29但是当我运行第一个查询时,它返回352.90000915527344

1 个答案:

答案 0 :(得分:0)

您正在使用两个不同的where子句。您确定customer_sequence = 270返回与status =“unpaid”和datetime> = 2015-10-01完全相同的结果吗?我打赌不是。

您可能会得到不同的结果,因为您在一个查询中运行组中的sum(),然后在第二个查询中没有group by的sum()。在不了解基础数据的情况下很难说。关于连接表的关系以及“序列”上的数据完整性还有其他因素。

一次完成一个连接并验证您是否获得了预期的数据。首先删除“group by”子句,然后查看