我有一个返回正确结果的查询,除了一些值......不知道为什么。我正在使用 Chinook 数据库。
SELECT SUM(unitPrice)
FROM invoiceLine
WHERE invoiceId = 5
这将返回 13,86。
SELECT invoiceId, total
FROM invoice
WHERE invoiceId = 5
这也返回 13,86。现在考虑下一个查询:
SELECT invoiceId, total
FROM invoice
WHERE total = (SELECT SUM(unitPrice)
FROM invoiceLine
WHERE invoiceId = 5)
这返回......什么都没有!当我更改为invoiceId = 1时,我确实得到了与该金额匹配的所有结果。
为什么??(我知道最后一个查询没有多大意义,它只是为了清楚地展示问题。