組合表以進行合併輸出
在資料操作領域,將多個表合併為單一內聚輸出是一個常見的挑戰。考慮這樣的場景,您有兩個表,KnownHours 和 UnknownHours,每個表包含費用編號、類別、月份和工作時間。目標是聚合小時數(不考慮月份)以獲得統一視圖。
要實現此目標,您可以利用 SQL 的 UNION 操作的強大功能。這允許您將多個查詢的結果合併到一個資料集中。在這種特殊情況下,您需要使用 SUM() 聚合函數將小時按費用編號和類別分組。
完成此操作的 SQL 查詢如下:
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 關鍵字組合了兩個單獨查詢的結果。第一個查詢從 KnownHours 表中檢索小時數,並按費用編號和類別對它們進行分組;第二個查詢從 UnknownHours 表中檢索小時,將它們視為屬於「未知」類別。
透過使用 UNION ALL,省略了重複檢查步驟,與單獨使用 UNION 相比,性能更好。
此查詢的結果是一個綜合表,提供每個費用編號和類別的總工作時間,無論它們發生在哪個月份。
以上是SQL的UNION操作如何整合多個表的時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!