ホームページ >データベース >mysql チュートリアル >SQL テーブルをマージして一意の日付値を保証する方法

SQL テーブルをマージして一意の日付値を保証する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-31 18:20:11780ブラウズ

How to Merge SQL Tables and Guarantee Unique Date Values?

SQL でのテーブルのマージと一意の日付値の確保

日付値の一意性を確保しながら 2 つのテーブルをマージするには、次の方法を利用します。

  1. すべて 2 を結合するサブクエリ: インバウンド テーブルとアウトバウンド テーブルからデータを抽出する 2 つのサブクエリを作成します。受信サブクエリの数量列を合計し、送信サブクエリの OutboundType をカウントします。
  2. Union All で結果を結合する: UNION ALL 演算子を使用して、両方のサブクエリの結果を結合します。これにより、受信トランザクションと送信トランザクションの両方を含む単一の結果セットが作成されます。
  3. 日付と製品でグループ化: 日付列と製品列を次のように使用して、結合された結果セットに GROUP BY 演算子を適用します。グループ化基準。これにより、各一意の日付と商品の組み合わせが最終結果で 1 回だけ表現されるようになります。
  4. 入荷と発送の合計: SUM を使用して、各日付と商品の組み合わせの合計入荷数量を計算します。および SUM を使用して、各組み合わせのアウトバウンド トランザクションの合計をカウントします。
  5. 結果の表示: 最終的な結果セットには日付が表示されます。一意の日付と製品の組み合わせごとの製品、合計インバウンド数量、および合計アウトバウンド トランザクション。

コード例:

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;

以上がSQL テーブルをマージして一意の日付値を保証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。