Борясь получает запрос на работу ...... ..SQL Количество запросов не возвращает правильные результаты
У меня есть две таблицы: -
tbl.candidates:
candidate_id agency_business_unit_id
TBL .candidate_employment_tracker
кандидатский номер
Занятость кандидата может иметь дубликаты записей кандидата_id, так как содержит записи по их истории работы для разных клиентов.
Таблицы кандидатов уникальны для каждого кандидата.
Я пытаюсь получить результаты, которые будут группироваться по агентству_business_unit_id и подсчитать количество кандидатов, каждый из которых существует в кандидате_employment_tracker.
E.g.
Agency Business Unit Id | Candidates
------------------------------------------------------------
100 | 2
987 | 1
12 | 90
Запрос Я воздействую на это, кажется, не работает, как я получаю количество кандидатов в candidate_employment_tracker.
SELECT
abu.agency_business_unit_id,
abu.agency_business_unit_name,
count(c.candidate_id) AS candidateCount
FROM candidate_employment_tracker cet
INNER JOIN candidate c ON c.candidate_id = cet.candidate_id
INNER JOIN agency_business_unit abu ON abu.agency_business_unit_id = c.agency_business_unit_id
WHERE c.candidate_ni_number NOT REGEXP '^[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z] ?[0-9]{2} ?[0-9]{2} ?[0-9]{2} ?[ABCD]$'
GROUP BY abu.agency_business_unit_id
ORDER BY abu.agency_business_unit_name ASC
Я пробовал несколько подходов и результаты были непоследовательными. Например, я знаю, что один из агентских бизнес-единиц имеет только 1 кандидата, но результат равен 2. Это связано с тем, что этот конкретный кандидат имеет 2 записи в таблице отслеживания вакансий кандидата. Я буду продолжать бить, но любая помощь будет очень признательна.
О, боже мой, количество запросов, которые я пробовал, и все провалилось. Как только я добавлю DISTINCT в c.candidate_id ..., он работает! – 2010-10-21 10:04:43
Плохо, это сработало, я не принимал во внимание неверный номер NI при сравнении данных. – 2010-10-21 19:32:17