用SQL 匯總多個表中的資料:解決不正確的結果
在資料分析領域,經常需要組合來自多個表格的資訊表格以獲得全面的了解。一項常見任務是計算這些表中按公共列分組的值的總和。但是,從提供的程式碼可以明顯看出,如果資料處理不當,可能會出現不正確的結果。
提供的初始查詢:
SELECT AP.[PROJECT], SUM(AP.Value) AS SUM_AP, SUM(INV.Value) AS SUM_INV FROM AP INNER JOIN INV ON (AP.[PROJECT] =INV.[PROJECT]) WHERE AP.[PROJECT] = 'XXXXX' GROUP BY AP.[PROJECT]
嘗試計算兩個值的總和表,特定PROJECT 的AP 和INV 。但是,問題在於 GROUP BY 子句的使用。按 AP.PROJECT 將結果分組會導致總和中包含重複值,進而導致總和不正確。
要修正此問題,需要使用子查詢的更強大方法:
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]
此增強查詢使用子查詢來計算每個值的總和單獨項目 。透過隔離子查詢內的計算,我們消除了總和中包含重複值的問題。結果是來自多個表的資料的準確且有意義的摘要,並按所需列進行分組。
以上是如何正確匯總多個SQL表的資料並避免錯誤結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!