Bonjour,
Cela fait longtemps que je n'ai pas fait de SQL complexe, et la je bloque.
Elle est complexe de part la complexité de ma BDD:
- J'ai 3 tables : COURSE, ASSOCIER_COURSE, STATUT_COURSE
structure des tables;
COURSE(Num_course,#Num_demande,...)
STATUT_COURSE(Num_statut_course,Nom_statut_course)
ASSOCIER_COURSE(#Num_demande,#Num_course,#Num_statut_course,Date_associer_course)
1.ASSOCIER_COURSE est une table intermédiaire entre COURSE et STATUT_COURSE, afin de sauvegarder chaque changement de statut à une date j.
2.Une demande, peut avoir plusieurs courses
Voici ce que je cherche à faire avec ma requète :
Je veux afficher dans un datagridview toutes les courses qui sont uniquement au statut 1 ( nom_statut = Ouvert), et pas les courses qui ont qui ont un Num_statut_course à 2,3,4,5,6.
Voici ma requête :
La ou sa bloque c'est que dans mon Not in, je peux comparé que un champs : ici Num_course... le resultat est donc qu'il me retire toutes les courses au statut 2,3,4,5,6 sans prendre en compte le Num_demande...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 "Select D.Num_demande as NuméroDemande, AC.Num_course as NuméroCourse, SC.Nom_statut_course as Statut, " & _ "AC.Num_statut_course as NuméroStatutCourse, AC.Date_associer_course as DateMAJStatut " & _ "from ASSOCIER_COURSE AC, STATUT_COURSE SC, DEMANDE D, COURSE C " & _ "where AC.Num_statut_course = SC.Num_statut_course " & _ "and AC.Num_statut_course = '1' " & _ "and D.num_demande = C.num_demande " & _ "and AC.Num_course = C.Num_course " & _ "and AC.Num_demande = D.Num_demande " & _ "and C.Num_course Not in ( Select C1.Num_course " & _ "from ASSOCIER_COURSE AC1, COURSE C1, STATUT_COURSE SC1 " & _ "where C1.Num_demande = AC1.Num_demande " & _ "and C1.Num_course = AC1.Num_course " & _ "and AC1.Num_statut_course = SC1.Num_statut_course " & _ "and AC1.Num_statut_course = '2' " & _ "or AC1.Num_statut_course = '3' " & _ "or AC1.Num_statut_course = '4' " & _ "or AC1.Num_statut_course = '5' " & _ "or AC1.Num_statut_course = '6' )"
Je veux que ma requète associe le Num_course au Num_demande qui lui convient.
Un pti Exemple:
Ce que j'ai dans ma table ASSOCIER_DEMANDE :
ce que ma requête me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Num_demande | Num_course | Num_Statut_course 1 | 1 | 1 1 | 2 | 1 2 | 1 | 1 2 | 2 | 2 2 | 3 | 1
Ainsi il me supprime toutes les lignes ou mon Num_course = 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Num_demande | Num_course | Num_Statut_course 1 | 1 2 | 1 2 | 3
Ce que je souhaite obtenir :
J'espère avoir été le plus clair possible, Merci par avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Num_demande | Num_course | Num_Statut_course 1 | 1 1 | 2 | 1 2 | 1 2 | 3![]()
Partager