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 :

Creation d'une requete avec plusieurs aggrégats


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 72
    Points : 46
    Points
    46
    Par défaut Creation d'une requete avec plusieurs aggrégats
    Je souhaite obtenir en resultat la situation suivante :

    --------------------------------------------------------
    Element / Total commandé / Total Livré / Total Facturé
    --------------------------------------------------------

    Element est le critère utilisé par la clause GROUP BY

    Les 3 colonnes Total sont des "SUM" sur un champs numériques
    1 champ particulier permet de differencier le type d'information (commande, livraison, facture)

    Ma question est : Comment formuler ma requête pour que les sommes soient faites selon des clauses WHERE différentes ?

    Merci pour votre aide

    Cordialement

    Franck

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Un probleme analogue a été traité ici

    http://www.developpez.net/forums/sho...d.php?t=571054

    Bon courage

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Je ne trouve pas vraiment l'adaptation que je dois en faire.

    En fait la table sur laquelle je me base est une jointure de 2 tables.

    Chacune des lignes est d'un type précis (commande, BL ou facture) et valorisé en Euro. Chaque ligne est imputable a un élément précis (centre de couts).

    L'idée est donc de faire un tableau de synthèse sur chaque centre de couts en mettant les montants en commande (somme des montant de type commande), les montants en BL (somme des montant de type BL), les montants en facture (somme des montant de type facture),

    Je suis novice et ne trouve pas comment faire ma requête pour générer toutes les sum() selon des critères précis et le tout regroupé par la clause GROUP BY

    Merci pour votre aide

    Franck

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Si tu avais un jeu d'essai se serait plus simple de t'aider

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    L'exemple est le suivant:

    NB: CDE veut dire de type Commande
    FCT de type Facture
    RCP de type Livré

    Les centres de couts = SECTEUR_xxxx servant à la clause GROUP BY
    La somme se faisant sur les montants

    Doc Centre Montant
    ----------------------------------------
    CDE0006 SECTEUR_47 24900
    CDE0081 SECTEUR_39 3476.48
    CDE0128 SECTEUR_61 26200
    CDE0129 SECTEUR_61 26200
    FCT0001 SECTEUR_64 1235
    FCT0002 SECTEUR_39 425
    FCT0003 SECTEUR_39 3556
    FCT0004 SECTEUR_39 222
    RCP0052 SECTEUR_49 3.19
    RCP0053 SECTEUR_39 0.2
    RCP0054 SECTEUR_39 3.58
    RCP0083 SECTEUR_39 8.75
    RCP0092 SECTEUR_13 2.22
    RCP0093 SECTEUR_13 3.64

    En resulat je souhaite

    Centre Mnt Cde Mnt Liv Mnt Fact
    SECTEUR_13 1324 125 654.2
    .....


    Merci

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    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 115
    Points : 28 480
    Points
    28 480
    Par défaut
    Citation Envoyé par Yanika_bzh Voir le message
    Un probleme analogue a été traité ici
    http://www.developpez.net/forums/sho...d.php?t=571054
    Citation Envoyé par Franck_P Voir le message
    Je ne trouve pas vraiment l'adaptation que je dois en faire.
    C'est bien le même type de problème et qui se résout de la même manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  centre
        ,   SUM(CASE WHEN doc LIKE 'CDE%' THEN montant ELSE 0 END)  AS cde
        ,   SUM(CASE WHEN doc LIKE 'RCP%' THEN montant ELSE 0 END)  AS rcp
        ,   SUM(CASE WHEN doc LIKE 'FCT%' THEN montant ELSE 0 END)  AS fct
    FROM    matable
    GROUP BY centre
    ;

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Merci pour votre aide, le résultat est ok.

    Franck

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/02/2010, 21h08
  2. Trier une requûete avec plusieurs UNION
    Par bobosh dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/07/2008, 17h28
  3. Pb Count dans une requete avec plusieurs champ retournés
    Par maxos75 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/06/2008, 15h01
  4. Réponses: 5
    Dernier message: 25/12/2005, 16h17
  5. Creation d'une table avec plusieurs clés
    Par mic79 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2005, 12h17

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