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 :

[SQL] SUM de SUM()


Sujet :

Langage SQL

  1. #21
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Car vous avez un group by, et que cette colonne ne fait pas partie de la partie a aggréger.

    Du coup toute colonne non présente dans le group by doit être utilisée avec une fonction d'agrégation (sum, max, min, etc)

  2. #22
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Ok merci, j'ai encore appris un truc, auparavant je rajoutais la colonne dans la clause groupe by pour éviter les messages .
    Je vais essayer de faire la requête comme tu me dis...

  3. #23
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Un peu de lecture ca ne vous prendra que 10-15min !
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/

  4. #24
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Pourquoi le : !

  5. #25
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Ok la requête semble fonctionner avec les soldes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT O.nego_id, O.nom_nego
               ,SUM(objectif)					AS 'somme_objectifs_nego'
               ,ROUND( MAX(S.solde)
    			+(SUM(COALESCE(T1.tra_honoraires1, 0))
    			+ SUM(COALESCE(T2.tra_honoraires2, 0))
    			+ SUM(COALESCE(T3.tra_honoraires3, 0))
    			+ SUM(COALESCE(T4.tra_honoraires4, 0)) ), 2)  AS 'somme_honoraires_nego'							 	
    FROM      Objectifs O
    LEFT JOIN Transactions T1 ON O.nego_id = T1.tra_nego_honoraires1
    LEFT JOIN Transactions T2 ON O.nego_id = T2.tra_nego_honoraires2
    LEFT JOIN Transactions T3 ON O.nego_id = T3.tra_nego_honoraires3
    LEFT JOIN Transactions T4 ON O.nego_id = T4.tra_nego_honoraires4    
    LEFT JOIN Soldes	   S  ON O.nego_id = S.nego_id
    WHERE     O.agence_id = 1
    GROUP BY  O.nego_id, O.nom_nego
    Merci

    Up : Néanmoins je n'obtiens pas le bon résultat avec la requête par agence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT O.agence_id 
    				   ,SUM(objectif)					AS 'somme_objectifs_agence'
    				   ,ROUND( MAX(S.solde)
    					+(SUM(COALESCE(T1.tra_honoraires1, 0))
    					+ SUM(COALESCE(T2.tra_honoraires2, 0))
    					+ SUM(COALESCE(T3.tra_honoraires3, 0))
    					+ SUM(COALESCE(T4.tra_honoraires4, 0)) ), 2)  AS 'somme_honoraires_agence'						 	
    		FROM      Objectifs O
    		LEFT JOIN Transactions T1 ON O.nego_id = T1.tra_nego_honoraires1
    		LEFT JOIN Transactions T2 ON O.nego_id = T2.tra_nego_honoraires2
    		LEFT JOIN Transactions T3 ON O.nego_id = T3.tra_nego_honoraires3
    		LEFT JOIN Transactions T4 ON O.nego_id = T4.tra_nego_honoraires4    
    		LEFT JOIN Soldes	   S  ON O.nego_id = S.nego_id
    		--WHERE     O.agence_id = 1
    		GROUP BY  O.agence_id

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. requete sql max de sum/sum en gardant les autres infos
    Par gwena54 dans le forum Requêtes
    Réponses: 17
    Dernier message: 27/06/2007, 12h13
  2. [SQL] problème de SUM dans un update
    Par _Jérôme_ dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/03/2007, 18h22
  3. [SQL] Requête fonction SUM
    Par ribrok dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/01/2007, 16h45
  4. Requête SQL avec UNION, sum et GROUP BY
    Par Guitariff dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/12/2006, 13h48
  5. [SQL] Group by + SUM + Min
    Par Deejoh dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2006, 15h46

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