Envoyé par
juliensfm
1 2 3 4 5
| SELECT SUM(averagecost * stockquantity)
FROM tbl_item
INNER JOIN tbl_itemsitedetails ON tbl_item.code_item = tbl_itemsitedetails.fk_code_item
WHERE stockcategory = stocke and stockfamily in (ELEC, MECA, PNEU)
GROUP BY code_item |
c'est mieux la ? ou manque peut etre qqchose à la première ligne
?
Comme je l'ai dit dans mon précédent message (en commentaire dans la requête) :
Envoyé par
CinéPhil
-- il manque la colonne du regroupement sinon vous aurez une suite de totaux sans signification
Envoyé par
juliensfm
Vous allez donc avoir la somme pour le code_item 1000, pour le code item 1002, pour le code_item 1003... et non pas pour le stockfamily MECA !
=> Il faut grouper par stockfamily. Du moins c'est comme ça que j'avais compris votre besoin.
Si vous voulez en fait bel et bien le calcul par code_item, d'après vos données, ceux-ci sont uniques et vous n'avez pas besoin de faire la somme, ni du groupage.
WHERE stockcategory = stocke
stocke est une valeur textuelle et doit être mise entre apostrophes sinon le SGBD interprétera cela comme le nom d'une colonne... qui n'existe pas !
=>
WHERE stockcategory = 'stocke'
and stockfamily in (ELEC, MECA, PNEU)
Pourquoi pas mais si vous avez plus tard une autre famille, la requête ne donnera pas tous les résultats.
toutes les familles articles (STOCKFAMILY) sauf les CONS
=>
AND STOCKFAMILY <> 'CONS'
Autre petit détail :
SELECT SUM(averagecost * stockquantity)
Il vaut mieux donner un nom à la colonne portant le résultat du calcul, à laide d'un alias, par exemple :
SELECT SUM(averagecost * stockquantity) AS global_value
Vous reconstituez les morceaux et ça devrait être bon.
Partager