SQL-запрос не возвращает правильные результаты - PullRequest
0 голосов
/ 21 октября 2010

С трудом заставляет запрос работать …… ..

У меня есть две таблицы: -

tbl.candidates:

candidate_id agency_business_unit_id

tbl.candidate_employment_tracker

candidate_id

Кандидат на работу может иметь дубликаты записей candid_id, поскольку он содержит записи об истории их работы для разных клиентов.

Таблицы кандидатов уникальны для каждого кандидата.

Я пытаюсь получить результаты, которые сгруппируют по agency_business_unit_id и посчитают количество кандидатов, которые есть у каждого, в существующем кандидате.

1019 * Е.Г. *

Agency Business Unit Id    |    Candidates
------------------------------------------------------------
100                    |    2
987                    |    1
12                     |    90

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

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

Вам нужно

count(DISTINCT c.candidate_id) 

Это позволило бы избежать двойного учета, когда кандидаты имеют 2 записи в таблице отслеживания занятости кандидатов.

0 голосов
/ 21 октября 2010

Хммм, похоже, это не сработает, теперь, когда я изучаю результаты.Когда я сравниваю кандидатов в бизнес-единицы агентства, я получаю непоследовательные цифры подсчета.

...