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 :

requete sql pour faire un classement


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Points : 22
    Points
    22
    Par défaut requete sql pour faire un classement
    salut !

    Voila j'ai cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT COUNT( t1.nom ) AS rang, t1.nom, t1.prenom, t1.capital, t1.nb_point_a_ajoute
    FROM clt AS t1
    LEFT JOIN clt AS t2 ON t1.capital + t1.nb_point_a_ajoute >= t2.capital + t2.nb_point_a_ajoute
    GROUP BY t1.nom
    ORDER BY rang
    LIMIT 0 , 30
    cela me sort cela :
    rang nom prenom capital nb_point
    1 a a 2 10
    2 b b 1 20
    4 d d 4 40
    4 c c 4 40

    elle fait bien les exequo mais à l'envers en fait D et C devrait 1, 1 et A, B 3, 4 si quelqu'un pouvait m'ameliorer cette requete merci par avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Dans ta requete, tu trie le résultat selon son rang , alors qu'il faudrait comme tu voudrais le trier selon son nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT COUNT( t1.nom ) AS rang, t1.nom, t1.prenom, t1.capital, t1.nb_point_a_ajoute
    FROM clt AS t1
    LEFT JOIN clt AS t2 ON t1.capital + t1.nb_point_a_ajoute >= t2.capital + t2.nb_point_a_ajoute
    GROUP BY t1.nom
    ORDER BY t1.nom,rang
    LIMIT 0 , 30
    ou si tu veut garder un classement selon le rang
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT COUNT( t1.nom ) AS rang, t1.nom, t1.prenom, t1.capital, t1.nb_point_a_ajoute
    FROM clt AS t1
    LEFT JOIN clt AS t2 ON t1.capital + t1.nb_point_a_ajoute >= t2.capital + t2.nb_point_a_ajoute
    GROUP BY t1.nom
    ORDER BY rang DESC, t1.nom ASC 
    LIMIT 0 , 30

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    merci pour ta reponse cela solutionne un pb, mais je suis toujours avec celui qui le plus nombre en rang alors qu'il faut qu'il soit en 4 !
    Merci de ton coup de main

Discussions similaires

  1. [MySQL] Requete SQL pour faire une recherche multi critères
    Par nassing dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/05/2011, 17h01
  2. Réponses: 2
    Dernier message: 15/02/2010, 01h07
  3. Requete SQL pour faire des ratios [ACCESS 2002]
    Par jacques64 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 22/12/2008, 16h18
  4. REQUETE SQL pour faire une division
    Par slorgue dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 19/11/2008, 11h27

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