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

InterBase Discussion :

[Interbase] Récupérer les N derniers enregistrements


Sujet :

InterBase

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 31
    Points
    31
    Par défaut [Interbase] Récupérer les N derniers enregistrements
    Bonsoir tout le monde,
    Je développe un petit programme en Delphi 7 avec une BDD Interbase et qui tourne sur 4 PCs en réseau local.
    J'aime bien savoir comment récupérer les N derniers enregistrement d'une table Matable avec les champs Id, Nom, DateNaissance, Note.
    J'ai beau consulté une large documentation, j'ai essayé pas mal d'exemples finalement je me trouve perdu
    J'attend vos réponses avec impatience et merci d'avance

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Ta demande est un peu ambigue

    En effet, la notion de rang/classement n'existe pas sur un SGBD, SAUF si on dit sur quel critère on souhaite se baser...

    Dans ton cas, est-ce l'ID ? le nom ? la date de naissance ? autre chose ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    D'abord, Merci infinément de votre réponse.

    En fait, MaTable possède un champs ID autoincrémentable avec un Générateur et un Trigger et puisque l'utilisateur ne peut pas voir le ID du nouvel enregistrement directement après la validation de la création j'ai voulu que les 10 derniers enregistrements créés s'affiche dans une grille (afin qu'il note sur ses dossiers en papier) le ID de la nouvelle fiche (10 parceque d'autres utilisateurs peuvent créer d'autres enregistrement entre temps).

    J'ai essayé LIMIT , TOP ,... mais ça ne fonctionne pas.

    Dans mes recherches multiples dans les forums de www.developpez.com, j'ai trouvé cette portion de code dans une réponse similaire, que j'aime bien avoir votre avis la dessus:

    SELECT a.ID, a.Nom, a.DateNaissance
    FROM MaTable a
    LEFT OUTER JOIN MaTable b ON b.ID > a.ID
    GROUP BY a.ID
    HAVING count(b.ID)>=10

    Est-ce qu'on peut faire mieux avec interbase ?

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Essaye ceci:
    Par exemple: les 5 plus vieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select Id, Nom, DateNaissance, Note
    from Matable
    order by DateNaissance
    rows 5;
    Les 5 plus jeunes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select Id, Nom, DateNaissance, Note
    from Matable
    order by DateNaissance desc
    rows 5;
    [edit] je viens de relire ton dernier message, et je me demande si je ne suis pas hors sujet...
    [/edit]

    @+ Claudius

  5. #5
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 576
    Points
    576
    Par défaut
    Je ne sais pas si c'est utilisable sous Interbase mais avec Firebird ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT FIRST 10 *
    FROM Matable
    ORDER BY Id DESCENDING

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Eh ben là CHAPEAU, effectivement c'était ce fameu ROWS qui manquait.

    Effectivement, en mettant un ORDER BY avec DESC et ROWS 5 j'ai pu afficher les 5 derniers enregistrements de MaTable.

    En voici la requête complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.id_enquete,a.num_enquete,a.donneur,a.nomraison,a.darrivee
    FROM enquete a
    ORDER BY id_enquete DESC ROWS 5
    Biensure id_enquete est le champs autoincrémenté.
    Merci pour TOUS des conseils
    Bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les 10 derniers enregistrements sans order by
    Par supcomingenieur dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2013, 13h12
  2. Réponses: 5
    Dernier message: 22/03/2010, 01h19
  3. Comment récupérer les 2 derniers enregistrements d'une table?
    Par js8bleu dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2009, 19h21
  4. [MySQL] Requête pour récupérer les 5 derniers enregistrement dans l'ordre croissant
    Par Jonathan.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/01/2008, 09h50
  5. récupérer les 3 derniers enregistrements
    Par COLOMBAT dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/09/2007, 11h10

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