Bonjour, je sollicite encore une fois votre aide car comme pouvait dire les romain : je perd mon SQL!
J'aimerai faire une requête sur ma table "Table_Suivi_Etat" Qui ne ressort que la colonne "ID_Etat" pour chaque "ID_Formulaire" ou "Date_Debut_Etat" est le plus grand.
Autrement dit,
Je souhaite avoir les ID_Etat le plus récent par ID_Formulaire.
Pour le moment en reprenant un exemple du Web Je suis arrivé à ca :
Cela me permet de récupérer les colonnes ID_Formulaire (Sans doublon) avec la date la plus grande (par ID_Formulaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT ID_Etat FROM Table_suivi_Etat WHERE EXISTS (ID_Formulaire,Date_Debut_Etat) IN(select ID_Formulaire, MAX(Date_Debut_Etat) From Table_suivi_Etat group by ID_Formulaire)
J'aimerai maintenant ressortir que la colonne ID_Etat correspondant a la selection précédente.
En suivant le code trouvé sur le WEB je devrais écrire :
ACCES M'indique l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ID_Etat FROM Table_suivi_Etat WHERE EXISTS (ID_Formulaire,Date_Debut_Etat) IN(select ID_Formulaire, MAX(Date_Debut_Etat) From Table_suivi_Etat group by ID_Formulaire)
Vous avez écrit une sous_requête pouvant renvoyer plus d'un champ sans utiliser le mot réservé EXISTS dans la clause FROM de la requête Principale. Révisez l'instruction SELECT de la sous-requête pour obtenir un seul champ.
Si vous avez une idée je suis preneur!!!
Par la suite je dois insérer cette requete dans une autre :
Dois-je Insérer ma première requête avant le "FROM" de ma 2ème requête en enlevant le premier SELECT de ma première Requête?
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
19
20
21
22
23
24
25
26
27
28 SELECT Table_Formulaire.ID_Formulaire, Table_Equipement.Nom_Equipement, Table_Ligne.Nom_Ligne, Table_VS.Nom_VS, Table_NatureDemande.Libellé_NatureDemande, Table_NivCompte.Nom_Compte AS 'Compte Actuel', Table_NivCompte1.Nom_Compte AS 'Compte Souhaité', Table_Suivi_Etat.Date_Debut_Etat as 'Date de Création' FROM ((((((((Table_Formulaire) INNER JOIN Table_Equipement ON (Table_Equipement.ID_Equipement = Table_Formulaire.ID_Equipement)) INNER JOIN Table_Ligne ON (Table_Equipement.ID_Ligne = Table_Ligne.ID_Ligne)) INNER JOIN Table_VS ON (Table_VS.ID_VS = Table_Ligne.ID_VS)) INNER JOIN Table_NatureDemande ON (Table_Formulaire.ID_Nature = Table_NatureDemande.ID_NatureDemande)) INNER JOIN Table_NivCompte ON (Table_NivCompte.ID_NivCompte = Table_Formulaire.ID_Compte_Actuel)) INNER JOIN Table_NivCompte1 ON ( Table_NivCompte1.ID_NivCompte = Table_Formulaire.ID_Compte_Demandé)) INNER JOIN Table_Suivi_Etat ON ( Table_Suivi_Etat.ID_Formulaire = Table_Formulaire.ID_Formulaire)) WHERE Table_Suivi_Etat.ID_Etat = 1
Je vous Remerci !!
Gab
Partager