[ACCESS] SELECT "élaboré"
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 :
Code:
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) |
Cela me permet de récupérer les colonnes ID_Formulaire (Sans doublon) avec la date la plus grande (par 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 :
Code:
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) |
ACCES M'indique l'erreur suivante :
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 :
Code:
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 |
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?
Je vous Remerci !!
Gab