Hello,
Description de la situation :
--------------------------
Dans le cadre du développement d'une application gérant les formations suivies dans la société, je souhaiterai créer une requête permettant de sortir la liste des formations qui n'ont pas été suivies par plusieurs utilisateurs sélectionnés. Sachant qu'un utilisateur possède une ou plusieurs fonctions et qu'une formation peut être destiné pour une ou plusieurs fonctions. Toutes les tables étant reliées entre elles, comment sortir cette requete ?
J'ai réussi à créer une requête mais qui ne me permet de sortir la liste des formations non suivies pour UN utilisateur sélectionné et non pour plusieurs...
Description des tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT FORMATION.NOM_FORM, USERS.ID_USER,USERS.NOM,USERS.PRENOM FROM FORMATION inner JOIN FORMATION_FONCTION ON FORMATION.ID_FORMATION = FORMATION_FONCTION.ID_FORMATION INNER JOIN USERS INNER JOIN USER_FONCTION ON USERS.ID_USER = USER_FONCTION.ID_USER ON USER_FONCTION.ID_FONCTION = FORMATION_FONCTION.ID_FONCTION WHERE 1=1 AND USERS.[ID_USER] IN (384) AND NOT EXISTS (SELECT * FROM FORMATION_USER WHERE FORMATION_FONCTION.ID_FORMATION = FORMATION_USER.ID_FORMATION and FORMATION_USER.[ID_USER] IN (384)) --> Celle-ci ne fonctionne pas si je met plusieurs ID d'utilisateur. Si un seul = OK.
Merci d'avance pour votre aide----------------------
Table Formation : (contient toutes les formations) ID_FORM,NOM_FORM
Table Users : (contient la liste des users ) ID_USER, NOM_USER
Table Formation_User : ID_FORM_USER,ID_USER,ID_FORM,DATE
Table Fonction : (contient la liste des fonctions) ID_FONCTION,NOM_FONCT
Table User_Fonction : (contient la liste des fonctions des users): ID_USER_FONCT,ID_USER,ID_FONCTION
Table Formation_Fonction : ID_FORM_FONCT,ID_FORM,ID_FONCTION
Partager