ホームページ >データベース >mysql チュートリアル >SQL でインバウンドおよびアウトバウンドの製品移動データをマージするときに、一意の日付を表示するにはどうすればよいですか?
テーブルの結合と日付の統合
SQL では、複数のテーブルのデータを結合することが包括的な分析に不可欠です。この問題では、製品の移動を追跡する 2 つのテーブル (Inbound と Outbound) を結合する必要があります。最初のクエリはこれらのテーブルを効果的にマージしますが、日付を一意に表示するには追加の要件があります。
UNION ALL および GROUP BY を使用した一意の日付表示
一意を実現するには日付表示の場合、元のクエリを変更して、GROUP と組み合わせて UNION ALL を使用できます。 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-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 中国語 Web サイトの他の関連記事を参照してください。