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 et somme de somme


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 139
    Points
    139
    Par défaut Somme et somme de somme
    Bonjour,

    J'ai un petit souci avec une requête SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IDENTIFIANT, SUM(MONTANT)
    FROM MATABLE
    GROUP BY IDENTIFIANT, SENSMONTANT
    Cette requête me remonte pour chaque identifiant la somme des montants par sens du montant (+ ou -).

    Là où ça coince, c'est que je souhaiterais que ça ne me remonte l'identififiant avec son montant par sens uniquement si la somme par identifiant est non nulle et là, je sèche.

    Si quelqu'un a une idée, je suis preneur.

    Xavier

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT IDENTIFIANT, SUM(MONTANT)
    FROM MATABLE
    GROUP BY IDENTIFIANT, SENSMONTANT
    HAVING SUM(MONTANT) NOT NULL

    Ou bien j'ai alors j'ai mal compris la question


    ++

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Buchs, j'avais plutôt compris qu'il veut tester la somme par identifiant tous sens compris.

    C'est peut être pas ce qu'il y a de plus efficace, mais bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WITH VueSomme AS (
    SELECT IDENTIFIANT, SENSMONTANT, SUM(MONTANT) som
    FROM MATABLE
    GROUP BY IDENTIFIANT, SENSMONTANT)
    SELECT * 
    FROM VueSomme v
    WHERE NOT EXISTS ( SELECT 1 
                                  FROM VueSomme v2
                                   WHERE v.IDENTIFIANT = v2.identifiant
                                   AND v.som = -1 * v2.com)
    Remarque : de toutes façons, tester sum(montant) is not null, c'était peut être pas génial

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 139
    Points
    139
    Par défaut
    Merci pour vos solutions... J'ai opté pour un partition by. La requête devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT IDENTIFIANT, SUM(MONTANT)
    FROM (SELECT IDENTIFIANT, SUM(MONTANT), SUM(SUM(MONTANT)) OVER(PARTITION BY IDENTIFIANT) SOMMETOTAL
              FROM MATABLE
              GROUP BY IDENTIFIANT, SENSMONTANT)
    WHERE SOMMETOTAL <> 0

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

Discussions similaires

  1. [XL-2003] Somme de rechercheV sans somme.si/prod
    Par AuroreBezu dans le forum Excel
    Réponses: 3
    Dernier message: 25/06/2010, 15h08
  2. [XL-2000] somme de recherchev ou somme si/plusieurs plages
    Par daegron dans le forum Excel
    Réponses: 6
    Dernier message: 03/11/2009, 10h35
  3. Réponses: 5
    Dernier message: 15/09/2008, 15h06
  4. [Etat] Sommes et total de sommes
    Par Ithilien dans le forum IHM
    Réponses: 2
    Dernier message: 09/01/2007, 14h01
  5. Somme de 2 requetes somme
    Par sqlnoob dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/06/2005, 13h38

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