sql - 合并两个表并添加数量

标签 sql sql-server union

我有 2 张 table

仓库_1

item  qty 
--------
3001   1
3003   3
3004   1
3006   2

仓库_2

item   qty
----------
3001    2
3002    3
3006    3
3008    6

我想将这两个表合并为第三个表,并添加相同项目的数量,如下所示

仓库_3

item    qty
-----------
3001     3
3002     3
3003     3
3004     1
3006     5
3008     6

如何使用 SQL Server 实现此目的?

最佳答案

您可以使用UNION来实现它。首先,您必须合并(两个表的)所有数据,并使用子查询,您可以使用 GROUP BY 进行分组,并使用 SUM 函数添加总计。

SELECT Item, SUM(qty) as Qty FROM
(
   SELECT Item, qty FROM warehouse_1
   UNION
   SELECT Item, qty FROM warehouse_2
) as a
GROUP BY item;

查看有关UNION的更多信息:

查看有关 GROUP BY 子句的更多信息:(您还可以在那里找到有关 SUM 的信息。)

关于sql - 合并两个表并添加数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369820/

相关文章:

mysql - 当列值不在表 B 中时,SQL 查询从表 A 中获取行并计算将存储在表 B 中的内容

mysql - 我应该为 0 到 3 之间的值使用什么数据类型

sql - 如果外键的列设置为 false,Postgres 将删除一行

sql - 在 Microsoft SQL Server 2005 中模拟 group_concat MySQL 函数?

c# - 如何将 SqlException 消息操作为用户友好的消息

java - 如何使用 Jooq 执行与 UNION 连接的任意数量的选择

MySQL 分组依据缺失值

sql-server - 为什么 "Initial Size"设置会改变?

sql - 连接下一个连续行

mysql检查字段值是否存在于另一个表中