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 :

Somme d'une somme


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 53
    Points
    53
    Par défaut Somme d'une somme
    Bonjour,
    je souhaite faire 2 sommes dans une même requete, l'une étant une somme de données regroupées par famille et par periode, l'autre étant la somme totale pour toutes les familles regroupées par période :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT afamille, SUM(aquantite), lperiode
    FROM ARTICLE LEFT JOIN LIGNE ON acodeart = lcodeart 
                                 AND lperiode >= "01/2008" AND lperiode <= "12/2008"
    WHERE afamille IN ("001", "002", "003")
    GROUP BY afamille, lperiode
    je ne sais pas comment compléter ma requete pour avoir la somme de "aquantite" mais pas regroupé par "afamille" (juste par période).
    Toutes les suggestions sont les bienvenues...
    merci

  2. #2
    Scorpi0
    Invité(e)
    Par défaut
    Bonjour,

    En Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT distinct afamille, 
                    SUM(aquantite) over (partition by afamille, lperiode), 
                    lperiode, 
                    sum(aquantite) over (partition by lperiode)
    FROM ARTICLE LEFT JOIN LIGNE ON acodeart = lcodeart 
                                 AND lperiode >= "01/2008" 
                                 AND lperiode <= "12/2008"
    WHERE afamille IN ("001", "002", "003")

    Version pas Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    with myReq as
    (
    SELECT afamille, aquantite, lperiode
    FROM ARTICLE LEFT JOIN LIGNE ON acodeart = lcodeart 
                                 AND lperiode >= "01/2008" AND lperiode <= "12/2008"
    WHERE afamille IN ("001", "002", "003")
    )
    select afamille, 
    lperiode, 
    (select sum(aquantite) from myReq r2 where r2.afamille = r1.afamille and r2.lperiode = r1.lperiode), 
    (select sum(aquantite) from myReq r3 where r3.lperiode = r1.lperiode)
    from myReq r1
    group by afamille, lperiode
    Dernière modification par Scorpi0 ; 26/11/2008 à 12h00.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    la meme chose mais avec une base sql server...
    merci, c'est déjà bien!

Discussions similaires

  1. [CR X]Effectuer une somme d'une somme
    Par Chuppas dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/08/2008, 10h52
  2. Réponses: 16
    Dernier message: 04/09/2006, 10h27
  3. Réponses: 2
    Dernier message: 27/06/2006, 20h16
  4. [Excel]Faire une somme avec une macro
    Par Chlo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/01/2006, 19h53
  5. [CR 8.5] Calculer la somme d'une somme
    Par Frederic Vincent dans le forum Formules
    Réponses: 4
    Dernier message: 12/02/2004, 17h53

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