mysql - MySQL 合并来自联合查询的记录
问题描述
任何人都可以帮忙。我有 2 张桌子,发给员工的物品和员工退回的物品。我已经编写了以下联合查询,正如预期的那样,每个结果我得到 2 行
select count(itemcode) as issued, 0 as returned, issue.employee, issue.itemcode
from issue
group by itemcode, employee
Union
select 0 as issued, count(itemcode) as returned, return.employee, return.itemcode
from return
group by itemcode, employee
结果是:
issued returned employee itemcode
1 0 12345 abcd
0 1 12345 abcd
2 0 00001 abcd
0 3 00002 abcd
我可以做些什么来合并这两条记录,记住并不总是有对应的发出和退回记录。我要求的结果是:
issued returned employee itemcode
1 1 12345 abcd
2 0 00001 abcd
0 3 00002 abcd
任何帮助,将不胜感激。
谢谢史蒂夫
解决方案
SELECT SUM(issued) issued,
SUM(returned) returned,
employee,
itemcode
FROM ( select count(itemcode) as issued, 0 as returned, issue.employee, issue.itemcode
from issue
group by itemcode, employee
Union
select 0 as issued, count(itemcode) as returned, return.employee, return.itemcode
from return
group by itemcode, employee
) xxx
GROUP BY itemcode, employee
?
推荐阅读
- c++ - 如何更好地表示 6 个整数键而不是作为 6 维数组的索引?
- json - 如何在 Go 中解码 JSON,它将多个元素作为类型数组返回,将单个元素作为类型返回
- tensorflow - tensorflow 1.x 重塑占位符
- networking - 如何将 VM 连接到 ad-hoc 网络?
- reactjs - 如何根据 React 中选择的选项显示组件?
- c# - “foreach”不过滤特定控件
- javascript - 当您在参数中只发送一个密钥时,您是否会发出“post”类型的请求?(最佳实践)
- python - 如何制作 Keras 神经网络输出值?
- kotlin - 将 RXJava Single 转换为协程的 Deferred?
- reactjs - 在反应js中更新没有回调函数的父组件