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

Développement SQL Server Discussion :

Agrégation CASE somme positif et négatif


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2003
    Messages : 30
    Points : 26
    Points
    26
    Par défaut Agrégation CASE somme positif et négatif
    Bonjour

    Je voudrai récupérer une valeur qui correspond à des mouvements de stocks d'une table suivant le type de mouvement.

    Si le mouvement est une sortie ou soustrait la quantité
    Si le mouvement est une entrée on ajoute la quantité
    dans une variable

    Il y a biensûr une ou plusieurs lignes dans MOUVEMENT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	SELECT 
    		CASE
    			WHEN l.Mvt = 1 THEN SUM(l.Qte)
    			WHEN l.Mvt = 3 THEN -SUM(l.Qte)
    		END
    		AS mouvement
    	FROM MOUVEMENT l
    	GROUP BY
    		l.Mvt, l.Qte
    Cela me remonte 2 lignes que je voudrai s'ajouter (donc une positive et une négative) en une seule variable

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT SUM(CASE
              WHEN l.Mvt = 1 THEN l.Qte
              WHEN l.Mvt = 3 THEN l.Qte * -1
           END) AS mouvement
    FROM MOUVEMENT
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2003
    Messages : 30
    Points : 26
    Points
    26
    Par défaut Merci
    Merci cela fonctionne

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

Discussions similaires

  1. DateDiff() résultat positif ou négatif
    Par Guy FALESSE dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/10/2011, 16h01
  2. [Turbo Pascal] Tri de nombres positifs et négatifs
    Par khmamed dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2011, 17h40
  3. nombre aléatoire positif et négatif
    Par isatis28 dans le forum C
    Réponses: 18
    Dernier message: 22/11/2006, 11h53
  4. tableau de nbrs positifs et négatifs
    Par pipip dans le forum C
    Réponses: 9
    Dernier message: 06/11/2006, 14h10
  5. Réponses: 7
    Dernier message: 22/04/2005, 14h27

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