IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Afficher les 10 derniers enregistrements


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 144
    Points : 75
    Points
    75
    Par défaut Afficher les 10 derniers enregistrements
    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.
    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;
    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 ASC;
    En résumé le premier code est correct mais il faudrait trier le résultat dans l’ordre croissant.

    Le code suivant retourne une erreur de syntaxe dans la clause FROM mais sans plus d’informations.
    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;
    Une petite suggestion à un débutant en SQL ?
    Merci pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    je ne connais pas acces mais dans votre il doit manquer un alias.

    Essayer avec ceci (ou une variante)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT tmp.DTC, tmp.CRE 
    FROM ( SELECT TOP 10 PLOG.DTC, PLOG.CRE FROM PLOG ORDER BY PLOG.DTC DESC) as tmp
    ORDER BY tmp.DTC ASC;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 144
    Points : 75
    Points
    75
    Par défaut
    Bonjour, merci pour votre réponse.
    Ce code renvoie un message d'erreur : "erreur de syntaxe dans la clause FROM".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tmp.DTC, tmp.CRE 
    FROM ( SELECT TOP 10 PLOG.DTC, PLOG.CRE FROM PLOG ORDER BY PLOG.DTC DESC) AS tmp
    ORDER BY tmp.DTC ASC;
    Encore merci.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    bonjour

    je viens d'essayer cette requete (dans access), et elle fonctionne correctement.


    pensez a l'index decsendant ET ascendant sur la colonne DTC

    a+
    Merci d'ajouter un sur les tags qui vous ont aidé

Discussions similaires

  1. [AC-2003] Afficher les 100 derniers enregistrements d'une table
    Par Evolvana dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/08/2011, 15h47
  2. Réponses: 6
    Dernier message: 10/11/2010, 13h04
  3. [Access] Afficher les deux derniers enregistrement
    Par badnane2 dans le forum Access
    Réponses: 10
    Dernier message: 08/07/2006, 14h02
  4. [VB.Net] Afficher les deux derniers enregistrement
    Par badnane2 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 07/07/2006, 19h54
  5. [MySQL] Afficher les 3 derniers enregistrements
    Par Wu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/02/2006, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo