Bonjour,
J’enregistre dans une base Access les index d’un compteur de gaz.
La structure de la table PLOG ressemble à ceci : DTC – CRE (DTC = date et CRE = index du compteur)
Afin d’afficher un graphe, je souhaiterais écrire une requête qui sélectionne les 10 derniers enregistrements les plus récents et qui les classe par ordre croissant.
Avec Access, LIMIT ne fonctionne pas et BOTTOM n’existe pas. Donc il faut utiliser TOP.
Le code ci-dessous prend les 10 derniers enregistrements mais il sont triés dans l’ordre décroissant.
Et forcément si l’ordre est croissant, la requête affiche les 10 premiers au lieu des 10 derniers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT TOP 10 PLOG.DTC, PLOG.CRE FROM PLOG ORDER BY PLOG.DTC DESC;
En résumé le premier code est correct mais il faudrait trier le résultat dans l’ordre croissant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT TOP 10 PLOG.DTC, PLOG.CRE FROM PLOG ORDER BY PLOG.DTC ASC;
Le code suivant retourne une erreur de syntaxe dans la clause FROM mais sans plus d’informations.
Une petite suggestion à un débutant en SQL ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT PLOG.DTC, PLOG.CRE FROM ( SELECT TOP 10 PLOG.DTC, PLOG.CRE FROM PLOG ORDER BY PLOG.DTC DESC) ORDER BY PLOG.DTC ASC;
Merci pour votre aide.
Partager