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 :

Faire une somme selon la condition


Sujet :

Langage SQL

  1. #1
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 161
    Points : 3 693
    Points
    3 693
    Par défaut Faire une somme selon la condition
    Bonjour, j'ai un problème sur une requête un peu spécial.

    J'ai une table de 3 colonnes de cet forme:

    +--------+------------------------+
    | PrixTTC | OrderCode | DOCUMENT |
    +--------+------------------------+
    | 1000.0 | POSE 5.5 | DOC1|
    | 300.00 | POSE 19.6 | DOC2|
    | 2000.0 | POSE 19.6 | DOC1|
    | 500.00 | LIVRAISON | DOC1|
    | 200.00 | LIVRAISON | DOC2|
    | 150.00 | EcoTaxe | DOC1|
    | 150.00 | EcoTaxe | DOC2|


    Voilà, je voudrais faire une somme de prixTTC pour un document. Cependant, je dois faire en sorte de ne pas prendre en compte la POSE 19.6 quand il n'y a pas de POSE 5.5 par document. J'avais d'abord penser avec un CASE de multiplier par 0 le prix mais je n'ai tjr pas trouvé comment ne prendre en compte la POSE 19.6 selon l'existence ou non d'une POSE 5.5.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select  Case
    		when (OrderCode like '%POSE 19.6%') then PrixTTC*0
    		else sum(prixTTC)
    		end
    		'PrixTTC', ordercode
    from element
     
    where DOCUMENT = 'DOC1'
    group by PrixTTC, ordercode
    Merci de m'aider.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    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 102
    Points : 28 401
    Points
    28 401
    Par défaut
    Quelque chose dans ce goût là :
    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
    16
    17
    SELECT  sum(elm.prixTTC)    AS PrixTTC
        ,   elm.ordercode
    FROM    element AS elm
    WHERE   elm.document = 'DOC1'
        AND (   (   elm.ordercode LIKE '%POSE 19.6%'
                AND NOT EXISTS
                    (   SELECT  1
                        FROM    element AS exc
                        WHERE   exc.ordercode LIKE '%POSE 5.5%'
                            AND elm.document = exc.document     
                    )               
                )
            OR  elm.ordercode NOT LIKE '%POSE 19.6%'
            )
    GROUP BY elm.document
        ,   elm.ordercode
    ;
    Si tu veux un regroupement par document, il suffit de supprimer elm.ordercode des clauses SELECT et GROUP BY.

  3. #3
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 161
    Points : 3 693
    Points
    3 693
    Par défaut
    Malheureusement ça ne marche pas mais merci de m'avoir mis la puce à l'oreil avec le EXISTS, je vais essayé de me débrouiller avec les infos que tu m'as donné .

  4. #4
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 161
    Points : 3 693
    Points
    3 693
    Par défaut
    C'est bon j'ai réussi grâce à toi encore merci !!!!
    C'était juste de mettre un AND EXISTS au lieu de AND NOT EXISTS


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

Discussions similaires

  1. [XL-2010] Faire une somme sous une condition
    Par student12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2012, 11h24
  2. Faire une somme sous condition
    Par passio dans le forum Excel
    Réponses: 3
    Dernier message: 12/01/2012, 23h09
  3. Faire une somme sous condition
    Par maystreet dans le forum Deski
    Réponses: 1
    Dernier message: 16/03/2009, 16h43
  4. Réponses: 13
    Dernier message: 05/11/2007, 09h00
  5. [XML][Debutant]Faire une somme avec condition...
    Par cackybis dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/04/2006, 16h07

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