將兩個表組合為一個輸出
資料庫操作通常需要將來自多個來源的資料合併為一個內聚的輸出。一個常見的挑戰是將具有相似結構但不同類別的表格組合在一起。考慮以下問題:
您有兩個表,“KnownHours”和“UnknownHours”,其中欄位包括ChargeNum(唯一識別碼)、CategoryID(類別分配)、Month(日期)和Hours(實際值) 。任務是將這些表(忽略「月份」列)組合成一個資料表,並按 ChargeNum 和 CategoryID 對「小時」進行分組。
預期輸出為:
ChargeNum CategoryID Hours 111111 1 90 111111 2 50 111111 Unknown 110.5 222222 1 40 222222 Unknown 25.5
要實現此目的,我們可以利用 UNION 運算符,它組合兩個查詢的結果。對於這個問題,我們將建立兩個查詢:
查詢1:
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID
此查詢檢索ChargeNum、CategoryID 以及每個查詢的小時總和來自「 KnownHours」表的組合。
查詢2:
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
此查詢會擷取「UnknownHours」表中每個項目的 ChargeNum 和小時總和,並將「Unknown」指定為 CategoryID。
組合兩者使用 UNION ALL 的查詢會產生所需的輸出:
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID UNION ALL SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
UNION ALL 運算符合並結果而不刪除重複項,提供組合資料的完整視圖。
以上是如何將兩個結構相似但類別不同的表合併為一個輸出表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!