我正在尝试在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
答案 0 :(得分:0)
您正在使用两个不同的where子句。您确定customer_sequence = 270返回与status =“unpaid”和datetime> = 2015-10-01完全相同的结果吗?我打赌不是。
您可能会得到不同的结果,因为您在一个查询中运行组中的sum(),然后在第二个查询中没有group by的sum()。在不了解基础数据的情况下很难说。关于连接表的关系以及“序列”上的数据完整性还有其他因素。
一次完成一个连接并验证您是否获得了预期的数据。首先删除“group by”子句,然后查看