組合多個表中的資料進行求和:解決不正確的結果
在SQL 查詢中,您的目標是檢索由三個欄位組成的表格:「PROJECT」、「SUM_AP」和「SUM_INV」。但是,由於聚合過程中的分組,您遇到了不正確的結果。
錯誤結果的原因:
查詢中的「GROUP BY」子句根據值組合在「AP.[項目]」欄位中。此聚合過程本質上是對重複的「值」條目進行求和,從而導致結果膨脹。
解決方案:使用子選擇查詢
要解決此問題,我們可以修改使用子選擇的查詢查詢:
SELECT AP1.[PROJECT], (SELECT SUM(AP2.Value) FROM AP AS AP2 WHERE AP2.PROJECT = AP1.PROJECT) AS SUM_AP, (SELECT SUM(INV2.Value) FROM INV AS INV2 WHERE INV2.PROJECT = AP1.PROJECT) AS SUM_INV FROM AP AS AP1 INNER JOIN INV AS INV1 ON (AP1.[PROJECT] =INV1.[PROJECT]) WHERE AP1.[PROJECT] = 'XXXXX' GROUP BY AP1.[PROJECT]
解釋:
此修改後的查詢確保僅對不同的「PROJECT」值進行分組,並且總和計算正確,提供了預期的結果。
以上是為什麼合併多個表時我的 SQL 求和計算不正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!