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 :

pb avec group by


Sujet :

Langage SQL

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

    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 13
    Points
    13
    Par défaut pb avec group by
    bonjour.
    Je ne suis pas très doué en sql et j'ai une petite question...
    J'ai une table contenant les champs 'année', 'ville', 'code', 'aliment', 'semaine', 'j1', 'j2',...,'j7'.
    Je voudrais récupérer le code et le nom de chaque aliment vendu au moins une fois dans l'année. Je veux également savoir la quantité totale vendue dans l'année (j1 est la qté vendu le lundi...j7 le dimanche).
    JE suppose qu'il faut utiliser un group by, mais je ne vois pas comment je peux trouver la quantité totale pour un aliment...

    Merci d'avance

  2. #2
    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
    Une remarque désagréable pour commencer, les 7 colonnes de ta table devrait être externalisés dans une autre table sous la forme de 7 lignes (maxi), et évite les caractères accentuées pour les noms des colonnes.

    champs 'année', 'ville', 'code', 'aliment', 'semaine', 'j1', 'j2',...,'j7'.
    Je voudrais récupérer le code et le nom de chaque aliment vendu au moins une fois dans l'année. Je veux également savoir la quantité totale vendue dans l'année (j1 est la qté vendu le lundi...j7 le dimanche).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 'Année', 'Aliment', 
           SUM (COALESCE (j1, 0) +
                COALESCE (j2, 0) +
                COALESCE (j3, 0) +
                COALESCE (j4, 0) +
                COALESCE (j5, 0) +
                COALESCE (j6, 0) +
                COALESCE (j7, 0))
    FROM laTable
    GROUP BY 'Année', 'Aliment'
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    Tu dois pouvoir faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Code, Aliment, SUM(J1+J2+J3+J4+J5+J6+J7)
    FROM Table
    Where Annee=2005
    GROUP BY code;

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Code, Aliment, SUM(J1+J2+J3+J4+J5+J6+J7)
    FROM Table
    Where Annee=2005
    GROUP BY code;
    Sans les COALESCE certains totaux par semaine risquent d'être null.
    il te manque Aliment dans le GROUP BY

    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    merci, j'ai ecrit ça un peu trop vite fait apparement...
    et une question en passant, si 'code' est la clé primaire pour un aliment, est il necessaire de mettre aussi 'aliment' dans le group by ??

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    code est bien la clé primaire.
    Je vais tester vos réponses...

    Merci

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    ça ne marche pas avec Coalesce...
    ça vient peut-être du fait que je bosse sous vb

    ça na marche pas non plus sans

  8. #8
    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
    Citation Envoyé par buffyann
    merci, j'ai ecrit ça un peu trop vite fait apparement...
    et une question en passant, si 'code' est la clé primaire pour un aliment, est il necessaire de mettre aussi 'aliment' dans le group by ??
    La norme l'exige, mais je suis d'accord que fonctionnellement, c'est un peu bête...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  9. #9
    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
    Citation Envoyé par peach
    ça ne marche pas avec Coalesce...
    ça vient peut-être du fait que je bosse sous vb
    Cela ne doit pas venir de vb mais de ton moteur
    COALESCE = norme SQL
    NVL = syntaxe ORACLE
    regarde la doc de ton moteur...ou au moins dis-nous ce que c'est
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    je ne bosse pas avec oracle mais avec access2000...c'est peut-être du à cela?

  11. #11
    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
    Citation Envoyé par peach
    je ne bosse pas avec oracle mais avec access2000...c'est peut-être du à cela?
    Il doit exister un fonction qui remplace NULL par quelque chose ...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  12. #12
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    A priori, ce serait "NZ" en ACCESS. à tester

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    A priori ça a l'air de marcher

    Merci

  14. #14
    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
    Après contrôle, pense au tag [Résolu]
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

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

Discussions similaires

  1. selection avec group by mais ne garder que ...
    Par Larson dans le forum Langage SQL
    Réponses: 13
    Dernier message: 22/06/2005, 17h23
  2. [débutant] problème avec Group by
    Par Amenofis dans le forum Débuter
    Réponses: 5
    Dernier message: 25/05/2005, 09h57
  3. Prb. avec group by
    Par bianconeri dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2005, 14h01
  4. requête avec group by
    Par Staron dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/11/2004, 16h30
  5. update avec group by
    Par slc dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/10/2004, 13h44

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