none
raquette sql pour faire la somme des champs d'une colonne a condition de l'opération (entré ou sortie) RRS feed

  • Question

  • bonjour a tous

    est ce qu'il est possible d'ajouter une colonne 'Stock Actuel' qui prend la valeur du stock Final pour un article avec raquette SQL :

    Operation     Code Article        Quantité
    Entre           001                   10
    Sortie          001                   04 
    Entre           001                   06
    Entre           002                   12
    Sortie          002                   07
    Entre          002                    05

    le stock final d'un article égal la somme des entré moins la somme des sorties 
    après la raquette ,la résultat est comme ça :

    Code Article        Stock final
    001                   12
    002                   10
    dimanche 25 septembre 2016 08:49

Réponses

  • select Code_Article, 
    
    sum( case when Operation='Entre' then Quantité else  -1* Quantité end) as stock_final
    
    from stockactuel
    
    group by Code_Article
    

    • Marqué comme réponse fouzi zaoui mercredi 6 février 2019 13:47
    vendredi 30 septembre 2016 00:45

Toutes les réponses

  • Bonjour

    Voici la requete que vous pouvez implémenter dans une vue :

    DECLARE @T TABLE (Operation VARCHAR(10), Code CHAR(3), Quantite INT)
    
    INSERT INTO @T VALUES ('Entre','001','10')
    INSERT INTO @T VALUES ('Sortie','001','4')
    INSERT INTO @T VALUES ('Entre','001','6')
    INSERT INTO @T VALUES ('Entre','002','12')
    INSERT INTO @T VALUES ('Sortie','002','7')
    INSERT INTO @T VALUES ('Entre','002','5')
    
    SELECT Code, SUM(Quantite * CASE Operation WHEN 'Entre' THEN 1 ELSE -1 END)
    FROM @T
    GROUP BY Code

    • Proposé comme réponse Grégory_Nail jeudi 29 septembre 2016 09:30
    mercredi 28 septembre 2016 06:50
  • select Code_Article, 
    
    sum( case when Operation='Entre' then Quantité else  -1* Quantité end) as stock_final
    
    from stockactuel
    
    group by Code_Article
    

    • Marqué comme réponse fouzi zaoui mercredi 6 février 2019 13:47
    vendredi 30 septembre 2016 00:45