mysql - 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。所以这让我很难写出正确的查询。
我也想学习编写这样的复杂查询。我应该学习任何文件或课程吗?我如何到达那里?
解决方案
汇总UNION
2 个表:
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 |
推荐阅读
- android - 从黑白(和灰色)阿尔法信息视频图像中为视频添加透明度
- javascript - 返回满足条件的数组元素个数
- python - Python 3.x - Pandas 条件逻辑字段值赋值 - 另一个字段
- vb6 - Vb6 活动 dll 正在创建新的类型库(GUID)
- python - 以 Python 方式将键添加到 dict
- php - 本地服务器(openserver)上的 $_POST 不起作用
- css - 将标题与卡片对齐
- c - C 程序中的指针
- r - R将文件名附加到列的值
- angular - 一个父组件中的多个 Observable 与每个子组件中的一个 Observable