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

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

DDD
DDDオリジナル
2024-12-27 00:51:10951ブラウズ

How to Merge SQL Tables and Ensure Unique Date Values?

一意の日付を持つテーブルのマージ

SQL では、一意の日付値を維持しながら 2 つのテーブルをマージするのが一般的なタスクです。 Inbound テーブルと Outbound テーブルをマージする問題の解決策は次のとおりです。

最初のステップは、UNION ALL 演算子を使用してテーブルをマージすることです。この演算子は、重複を削除せずに両方のテーブルの行を結合します:

(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
)

次に、重複する日付を削除する必要があります。このため、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;

この最後のクエリの結果、必要に応じて一意の日付値を持つテーブルが生成されます。出力は、指定した例と同様になります:

Date           Product       Inbound        Outbound
2017-05-13     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 中国語 Web サイトの他の関連記事を参照してください。

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