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 :

faire un group by sur les différents niveau de code


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut faire un group by sur les différents niveau de code
    Bonjour,

    J'ai une table qui contient ce genre de données :

    01 4€
    011 2€
    012 3€
    02 1€
    023 2€
    024 5€
    0241 2€
    0242 2€

    Je voulais savoir si c'était possible de faire un group by au différent niveau de code?
    Je m'explique :
    faire un group by a chaque fois que l'on passe a un niveau différent afin que je puisse comptabilisé, pour le group 2 :

    024 = 5+2+2
    02 = 1+2+5+2+2


    Merci d'avance

    ++speed

  2. #2
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Si tu veux connaitre suite à ta requête les agrégats sur 1, 2 et 3 niveaux de ton code (0, 02 et 024 par ex) et que les colonnes de ta tables sont nommées code et montant tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT * FROM(
    SELECT substr(code,1,3) cod, sum(montant)
    FROM ta_table
    GROUP BY substr(code,1,3)
    UNION
    SELECT substr(code,1,2) cod, sum(montant)
    FROM ta_table
    GROUP BY substr(code,1,2)
    UNION
    SELECT substr(code,1,1) cod, sum(montant)
    FROM ta_table
    GROUP BY substr(code,1,1))
    ORDER BY cod;

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    oki je vais regarder merci

    En fait plus j'avance plus je vois que c plus difficile par rapport a ce que je pensais au début. Car je dispose pas de tous les codes au départ, enfin pas tout le temps:

    des fois j'ai :
    0114
    donc il faut ke je retrouve 011 et 01
    puis d'autre j'aurai
    01
    0114
    donc il faudra ke je trouve 011

    Je vais m'inspirer tout de meme de ce que tu m'as passé ca m'a l'air d'etre une bonne piste

    Merci
    ++speed

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Ton moteur dispose-t-il des ordres GROUP BY CUBE et GROUP BY ROLLUP ?

  5. #5
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    tres bonne question
    Je n'ai jamais utilisé ca
    j'utilise Sql serveur

    Je vais voir

    Merci

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

Discussions similaires

  1. Comment faire un tail -f sur les logs binaires mysql-bin ?
    Par mediaforest dans le forum Requêtes
    Réponses: 8
    Dernier message: 24/09/2005, 12h34
  2. [Débutant] Les opcodes sur les différents processeurs
    Par loverdose dans le forum Assembleur
    Réponses: 11
    Dernier message: 03/02/2005, 13h32
  3. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53

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