Luttant obtenir une requête pour travailler ...... ..nombre requête SQL ne pas retourner des résultats corrects
J'ai deux tables: -
tbl.candidates:
candidate_id agency_business_unit_id
TBL .candidate_employment_tracker
candidat_id
L'emploi candidat peut avoir des enregistrements en double d'un candidat_id car il contient des enregistrements sur leur historique de travail pour différents clients.
Les tables de candidats sont uniques pour chaque candidat. J'essaie d'obtenir des résultats qui seront regroupés par agency_business_unit_id et de compter le nombre de candidats qui existent dans le candidat_employment_tracker.
E.g.
Agency Business Unit Id | Candidates
------------------------------------------------------------
100 | 2
987 | 1
12 | 90
La requête que je travaille sur ne semble pas fonctionner comme je reçois le nombre des candidats à 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
J'ai essayé plusieurs approches et les résultats sont incohérents. Par exemple, je sais que l'une des unités d'affaires de l'agence a seulement 1 candidat, mais le résultat est 2. Cela est dû au fait que ce candidat particulier a 2 enregistrements dans la table de suivi de l'emploi candidat. Je vais continuer à dénigrer, mais toute aide serait grandement appréciée.
Oh mon Dieu, le nombre de requêtes que j'ai essayé et j'ai échoué. Dès que j'ajoute un DISTINCT à c.candidate_id .... il semble fonctionner! –
Mon mauvais, cela a fonctionné, je ne prenais pas en compte le numéro de NI invalide lors de la comparaison des données. –