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 :

[Débutant] Retrouver position à partir de l'ID


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Débutant] Retrouver position à partir de l'ID
    Salut...

    Si je découpe ma liste d'enregistrements en pages contenant X éléments, comment savoir à quelle page appartient l'élément ayant l'ID=Y ?

    Diviser le nombre d'enregistrements par X serait incorrect puisque des ID peuvent avoir été supprimés...

    Et j'aimerais éviter d'avoir à charger toute la liste et faire le comptage "à la main".

    Quelqu'un a-t-il une solution?
    Merci.

  2. #2
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    ta question est totalement obscure
    nous voulons bien
    - ton sgbd
    - le DDL des tables
    - un exemple de requête


    avec ce que tu me racontes, je comprends qu'il faut faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select page from latable where ID = 12

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Détails
    Ma table pourrait être aussi simple que ça:

    ID:
    1
    3
    4
    7
    8
    12
    13
    15

    Mon appli affiche des séries de 5 enregistrements par écran.

    Ecran 1: ID 1,3,4,7,8
    Ecran 2; 12,13,15

    En fournissant l'ID=8, par exemple, je voudrais savoir quelle série de 5 (la 1ère, la 2ème, la Xème ?) je dois afficher.

    Une solution serait de charger tous mes ID dans un tableau, et de retrouver l'indice correspondant à mon ID, mais je trouve ça un peu pataud, il doit y avoir nettement plus fin.

    Je me trompe ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 103
    Points : 28 398
    Points
    28 398
    Par défaut
    Si ta requête liste les lignes dans l'ordre des ID, c'est en effet simple à calculer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(*) / nb_lig_page + 1 AS num_page
    FROM matable
    WHERE id <= :id_cherché

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 882
    Points : 53 073
    Points
    53 073
    Billets dans le blog
    6
    Par défaut
    Vous pouvez utiliser les fonctions de fenêtrage ROW_NUMBER ou RANK pour ce faire. Elle font partie intégrante de la norme SQL:2003.

    Jettez un coup d'oeuil sur le paragraphe "1.7 Fonctions de classement et d'énumération (norme SQL:2003)"
    de la page suivante : http://sqlpro.developpez.com/SQL_Server_2K5/N1.php

    vous y trouverez quelque exemples de pagination et ce que l'on peut faire avec.

    A +

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Remerciements
    Merci à tous, j'ai suivi le conseil d'al1_24, c'était effectivement assez simple, mais je débute, ecco.

    A bientôt.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/01/2007, 22h18
  2. [Débutant] Récupérer position Form
    Par Michel Hubert dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 20/12/2006, 09h13
  3. [débutant]créer requête à partir de formulaire
    Par djpit dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/08/2006, 10h01
  4. [JTextArea]Recuperer une position à partir d'un Point
    Par rushtakn dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 19/05/2006, 09h36
  5. Retrouver date à partir des n° de jour, semaine et année
    Par infosorome dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/12/2005, 11h21

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