MySQL Объедините записи из запроса Союза - PullRequest
0 голосов
/ 07 февраля 2020

Может кто-нибудь, пожалуйста, помогите. У меня есть 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

Что я могу сделать, чтобы объединить 2 записи, учитывая, что не всегда есть соответствующие выданные и возвращенные записи. Результат, который я требую:

issued          returned       employee           itemcode
1               1              12345              abcd
2               0              00001              abcd
0               3              00002              abcd

Любая помощь будет оценена.

Спасибо, Стив

1 Ответ

1 голос
/ 07 февраля 2020
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

?

...