首页 > 解决方案 > MYSQL用SUM减去两个表

问题描述

表格1

项目名称 参考编号 数量
项目1 参考1 50
项目1 参考1 40
项目1 参考2 30
项目2 参考1 30

表2

项目名称 参考编号 数量
项目1 参考1 80
项目2 参考1 10
项目2 参考1 5

我想做的是SUM(quantity) GROUP BY projectname, referenceid每张桌子。然后table1.quantity - table2.quantity。在这种情况下,最终结果应该是:

项目名称 参考编号 数量
项目1 参考1 (50+40)-80 =10
项目1 参考2 30-0 = 30
项目2 参考1 30-(10+5) =15

如您所见,table2 中的 Project1 中没有 ref2。所以这让我很难写出正确的查询。

我也想学习编写这样的复杂查询。我应该学习任何文件或课程吗?我如何到达那里?

标签: mysql

解决方案


汇总UNION2 个表:

SELECT projectname, referenceid, SUM(quantity) quantity
FROM (
  SELECT projectname, referenceid, quantity
  FROM Table1
  UNION ALL
  SELECT projectname, referenceid, -quantity
  FROM Table2
) t
GROUP BY projectname, referenceid

请参阅演示
结果:

项目名称 参考编号 数量
项目1 参考1 10
项目1 参考2 30
项目2 参考1 15

推荐阅读