У меня есть две таблицы с похожими данными, которые я хотел бы сравнить. Следующие запросы предоставляют количество сотрудников в каждой таблице:
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
Любая помощь будет оценена!