いくつかの値を除いて、正しい結果を返すクエリがあります...理由はわかりません。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に変更すると、その金額に一致するすべての結果が得られます。
なぜ??(最後のクエリはあまり意味がないことを私は知っています、それは単に問題を明確に示すためです。