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

Outils MySQL Discussion :

N° de rang dans un classement


Sujet :

Outils MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut N° de rang dans un classement
    Bonsoir,
    je fais une requête de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sum('ca') as 'ca',client from facture group by client order by ca limit 15
    pour avoir mon top 15 des chiffres d'affaire.
    Je souhaite "numéroter" les résultats, pour avoir en plus des 2 colonnes, le rang dans le classement. Est-ce possible dans la requête ?

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Salut,

    Tu ne peux pas le faire du côté du langage serveur ?

    Il y a les variables dynamiques de MySQL qui permettent de le faire, mais il faut les déclarer lors d'une précédente requête.

  3. #3
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Citation Envoyé par Xunil
    Salut,
    Tu ne peux pas le faire du côté du langage serveur ?
    Tu veux dire dans une procédure stockée ? C'est ce que je voulais éviter mais s'il faut y passer, j'y passerai ..
    Citation Envoyé par Xunil
    Il y a les variables dynamiques de MySQL qui permettent de le faire, mais il faut les déclarer lors d'une précédente requête.
    Un petit exemple serait le bienvenu ...

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Non, ce que je voulais dire, en parlant du langage serveur, c'est en php par exemple, en incrémentant une variable dans la boucle qui lit les résultats de la requête.

    Pour ce qui est de la variable MySQL, il faut en 1er initialiser la variable

    Et dans la sélection, on incrémente cette variable
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT sum('ca') AS 'ca', client, @cmpt:=@cmpt+1 AS rang FROM facture GROUP BY client ORDER BY ca LIMIT 15

  5. #5
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Citation Envoyé par Xunil
    Non, ce que je voulais dire, en parlant du langage serveur, c'est en php par exemple, en incrémentant une variable dans la boucle qui lit les résultats de la requête.
    C'est ce que je fais déjà.
    Citation Envoyé par Xunil
    Pour ce qui est de la variable MySQL, il faut en 1er initialiser la variable

    Et dans la sélection, on incrémente cette variable
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT sum('ca') AS 'ca', client, @cmpt:=@cmpt+1 AS rang FROM facture GROUP BY client ORDER BY ca LIMIT 15
    Ok mais dans ce cas, comme ce n'est pas du tout en un, cela revient au même que de le coder en php.
    Si je donne ces 2 requêtes à exécuter groupées à phpmyadmin, pas de problème, dans un script php, pas de problème, mais dans un outil de style MysqlQueryBrowser, ca ne fonctionne pas, puisqu'il doit, j'imagine, fermer la connexion après chaque requête !! Mais c'est quand même un plus.
    Je vais explorer du côté de la procédure stockée quand même alors ...

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

Discussions similaires

  1. Calcul d'un rang dans une requête
    Par rossy dans le forum Access
    Réponses: 7
    Dernier message: 26/07/2018, 19h17
  2. [XL-2010] Formule Rang - saut dans le classement
    Par Guppy dans le forum Excel
    Réponses: 3
    Dernier message: 29/05/2013, 18h53
  3. [MySQL] Récuperer la position dans un classement
    Par NicoMX dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/11/2006, 17h58
  4. calcul d'un rang, problème de classement
    Par lepeule dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/06/2006, 08h32
  5. [VBA-E] Utiliser le range dans un tab croisé dynamique
    Par GoLDoZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2006, 16h12

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