Bonsoir
A une date donnée, je dois extraire la liste des personnes absentes.
J'ai 2 tables :
La 1ère table des personnes (TR):
- Numero => clef primaire identity
- Nom => nom de la personne
La 2ème table (SM)
- Numero => Clef primaire identity
- NumeroTR => Clef étrangère = le champ "Numero" de la 1ère table
- Annee int contient 2007, 2008, 2009
- Mois int contient le N° du mois (de 1 à 12)
- 31 champs entiers qui correspondent aux indices du jour du mois. Dans ces champs il y aura le code du pointage saisi.
Dès le 1er pointage je crée l'enregistrement dans la table SM. Chaque nouveau pointage génère une modification du code du numéro du jour du pointage.
Ma requête voulue :
Extraire les personnes qui n'ont pas pointé dans le mois (càd ils n'ont pas encore un enregistrement dans le mois concerné), d'où la requête left join, qui est assez simple :
SELECT TR.Nom
FROM TR LEFT OUTER JOIN
SM ON TR.Numero = SM.NumeroTR
WHERE (SM.NumeroTR IS NULL) AND (SM.Annee = 2009) AND (SM.Mois = 2)
Cette requête est censée de fournir toutes les personnes n'ayant pas un enregistrement dans la table SM.
Je ne vois pas pourquoi je n'ai pas de résultat.
Merci pour un conseil.
Partager