Как сравнить количество записей со значением в другой таблице на основе идентификатора? - PullRequest
0 голосов
/ 16 мая 2019

Я хотел бы сравнить количество записей, которые соответствуют определенным критериям в одной таблице, со значением в другой таблице, чтобы убедиться, что они совпадают на основе идентификатора.У меня есть 2 таблицы, РЕЗЮМЕ и РАБОЧИЙ СТОЛ

SUMMARY
-------------
ID  | Total |  
y83 | 1     |
u34 | 2     |
-------------

Worktable
-------------
ID | Action | Code
y83|  S     |  T1
y83|  S     |  T1
y83|  G     |  M1
u34|  G     |  M1
u34|  G     |  M1
u34|  H     |  L1

Меня интересует следующий подсчет, соответствующий итоговой сумме:

select ID, count(ID) from WORKTABLE where ACTION = 'G' and CODE = 'M1' group 
by ID;

Мой вопрос: как я могу сравнить счетчикизапрос выше в поле Итого в сводной таблице?

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Тебе нужно что-то подобное? Использование inner join было бы полезно:

select w.ID, count(w.ID) as WCount, count(s.ID) as SCount
from WORKTABLE w
inner join SUMMARY s on s.ID=w.ID
where w.ACTION = 'G' and w.CODE = 'M1'
group by w.ID;
0 голосов
/ 16 мая 2019

Это должно дать вам то, что вам нужно.

Это берет ваш запрос с идентификатором, подсчитывает ваш поиск и объединяет результаты этого поиска в вашу сводную таблицу и возвращает только те, которые соответствуют.

SELECT *
FROM SUMMARY
INNER JOIN (
    SELECT ID, count(ID) AS CountTotal
    FROM WORKTABLE 
    WHERE ACTION = 'G' 
    AND CODE = 'M1'
) SUB ON SUMMARY.ID = SUB.ID AND SUMMARY.Total = CountTotal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...