首页 >数据库 >mysql教程 >在 SQL 中合并入站和出站产品移动数据时如何显示唯一日期?

在 SQL 中合并入站和出站产品移动数据时如何显示唯一日期?

DDD
DDD原创
2024-12-25 22:42:10298浏览

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