首頁 >資料庫 >mysql教程 >在 SQL 中合併入站和出站產品移動資料時如何顯示唯一日期?

在 SQL 中合併入站和出站產品移動資料時如何顯示唯一日期?

DDD
DDD原創
2024-12-25 22:42:10337瀏覽

How Can I Display Unique Dates When Merging Inbound and Outbound Product Movement Data in SQL?

合併表和統一日期

在 SQL 中,組合多個表的資料對於進行全面分析至關重要。此問題需要合併兩個表(入站和出站),以追蹤產品移動。初始查詢有效地合併了這些表,但有一個額外的要求,即唯一地顯示日期。

使用 UNION ALL 和 GROUP BY 的唯一日期顯示

實現唯一日期顯示,原來的查詢可以修改為使用UNION ALL與GROUP結合使用BY:

SELECT Date, Product, SUM(Inbound) as Inbound, SUM(Outbound) as Outbound
FROM ((SELECT Inbound_Date As Date, Product, SUM(Quantity) as Inbound, 0 as Outbound
      FROM Inbound
      GROUP BY 1,2
     ) UNION ALL
     (SELECT Outbound_Date, Product, 0 as Inbound, COUNT(*)  as Outbound 
      FROM Outbound
      GROUP BY 1,2
     )
    ) io
GROUP BY Date, Product;

更改細分:

  • UNION ALL 組合了兩個子查詢的結果,每個子查詢代表一個原始表。
  • 子查詢按 Inbound_Date(別名為 Date)和 Product 將資料分組入站和依出站日期和出站產品。
  • 透過巢狀這些子查詢,入站和出站數量被分成列。
  • 外部 GROUP BY 子句進一步按日期和產品聚合數據,確保刪除重複的日期。

輸出解釋:

修改後的查詢產生所需的輸出:

Date Product Inbound Outbound
2017-05-23 Product A 400 1
2017-09-04 Product C 380 0
2017-10-18 Product C 0 1
... ... ... ...
2018-09-10 Product B 200 1
... ... ... ...

以上是在 SQL 中合併入站和出站產品移動資料時如何顯示唯一日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn