【发布时间】:2020-04-06 12:00:02
【问题描述】:
我想比较两个具有相似数据的表。以下查询提供了每个表中的员工数量:
SELECT Extract_Month, COUNT(Employee_Number) as Staff
FROM Staff
GROUP BY Extract_Month;
SELECT Extract_Month, COUNT(Employee_Number) as MX
FROM Staff_mx
GROUP BY Extract_Month;
结果如下
2019-04-01 17246
2019-05-01 17194
2019-06-01 17252
2019-04-01 17140
2019-05-01 17194
2019-06-01 17434
我想要一个查询以以下格式组合结果:
Staff MX
2019-04-01 17246 17140
2019-05-01 17194 17194
2019-06-01 17252 17434
我试过这个,其中包含我想要的结果,但没有正确呈现:
SELECT s.Extract_Month, COUNT(s.Employee_Number) as Staff, COUNT(mx.Employee_Number) as MX
FROM Staff s
LEFT JOIN
staff_mx mx
ON s.Employee_Number = mx.Employee_Number
AND s.Extract_Month = mx.Extract_Month
GROUP BY s.Extract_Month
UNION ALL
SELECT mx.Extract_Month, COUNT(s.Employee_Number) as Staff, COUNT(mx.Employee_Number) as MX
FROM Staff s
RIGHT JOIN
staff_mx mx
ON s.Employee_Number = mx.Employee_Number
AND s.Extract_Month = mx.Extract_Month
GROUP BY mx.Extract_Month
这给了我以下,但不是预期的结果:
Staff MX
2019-04-01 17246 16830
2019-05-01 17194 16820
2019-06-01 17252 16784
2019-04-01 16830 17140
2019-05-01 16820 17194
2019-06-01 16784 17434
任何帮助将不胜感激!
【问题讨论】:
标签: sql sql-server join union