Bonjour
N'arrivant pas à créer une requete en mode création basic, j'eesaie de la faire en sql sachant que je n'y connais rien du tout ..
J'ai trouvé la réponse à mon besoin dans un exemple sur internet mais je n'arrive pas à adapter la formule pour ma base ...
Voici l'exemple trouvé :
table Livre
id |
categorie |
date |
livre |
pages |
1 |
10 |
04/03/2009 |
livre A |
399 |
2 |
11 |
04/03/2009 |
livre B |
244 |
5 |
12 |
04/03/2009 |
livre C |
555 |
3 |
10 |
03/03/2009 |
livre D |
300 |
4 |
11 |
03/03/2009 |
livre E |
200 |
6 |
12 |
03/03/2009 |
livre F |
500 |
On souhaite récupérer le livre ayant la date la plus récente par catégorie pour obtenir le résultat suivant :
1 |
10 |
04/03/2009 |
livre A |
399 |
2 |
11 |
04/03/2009 |
livre B |
244 |
5 |
12 |
04/03/2009 |
livre C |
555 |
SELECT l.* FROM livre l INNER JOIN ( SELECT categorie, MAX(date) AS maxDate FROM livre GROUP BY categorie ) groupel ON l.categorie = groupel.categorie AND l.date = groupel.maxDate
Dans mon cas ma table se nomme : WO_Retrait_wvs_parc_maa
je fais une requete qui sélectionne le [N° de timbre] sur la base d'une date dans le champs [Fermé le] (la plus récente)
ma première requete donne donc :
1 2 3
| SELECT WO_Retrait_wvs_parc_maa.[N° de timbre], Max(WO_Retrait_wvs_parc_maa.[Fermé le]) AS [MaxDeFermé le]
FROM WO_Retrait_wvs_parc_maa
GROUP BY WO_Retrait_wvs_parc_maa.[N° de timbre]; |
mais dès que je souhaite imbriquer les deux select ... je dois pas avoir la bonne synthaxe car j'ai un message d'erreur sur opérateur :
1 2 3
| SELECT WO_Retrait_wvs_parc_maa_1.* FROM WO_Retrait_wvs_parc_maa_1 INNER JOIN (SELECT WO_Retrait_wvs_parc_maa.[N° de timbre], Max(WO_Retrait_wvs_parc_maa.[Fermé le]) AS [MaxDeFermé le]
FROM WO_Retrait_wvs_parc_maa
GROUP BY WO_Retrait_wvs_parc_maa.[N° de timbre]) groupe1 ON WO_Retrait_wvs_parc_maa_1.[N° de timbre] = groupe1.[N° de timbre] AND WO_Retrait_wvs_parc_maa_1.[Fermé le] = groupe1.[MaxDeFermé le]; |
pourriez vous m'aider et me dire ce que je ne code pas correctement ...
MERCI!!!!
Partager