OVH Cloud OVH Cloud

sum

2 réponses
Avatar
olivier
bonjour,

j'aimerais faire la sum d'une colonne de certaines lignes qui correpondent à
un critére et resortir les lignes qui ne correspodent pas sans sum.

en gros j'ai une jointure gauche des order qui font la sum des prix de
order_detail qui correpondent a un critére particulier mais je veux aussi
sortir les autres mais sur la même ligne donc non groupés.

Je ne sais pas si il on peux utiliser un sum avec un critére genre sum (x,
where toto = 'kj')

2 réponses

Avatar
Michel Walsh
Salut,


La clause WHERE s'exécute AVANT les aggrégations, donc:



SELECT SUM(champ)
FROM quelquePart
WHERE condtion


effectuera la somme des valeurs du champ choisi, pour les enregistrements
(et seulement ceux ) qui passent la condition. On peut ajouter un GROUP BY
si on désire des "sub-divisions", tel quel, maintenant, il n'y aura qu'un
seul "groupe", toute la table.




Espérant être utile,
Vanderghast, Access MVP




"olivier" wrote in message
news:%23FGe%23z%
bonjour,

j'aimerais faire la sum d'une colonne de certaines lignes qui correpondent


à
un critére et resortir les lignes qui ne correspodent pas sans sum.

en gros j'ai une jointure gauche des order qui font la sum des prix de
order_detail qui correpondent a un critére particulier mais je veux aussi
sortir les autres mais sur la même ligne donc non groupés.

Je ne sais pas si il on peux utiliser un sum avec un critére genre sum (x,
where toto = 'kj')





Avatar
Steve Kass
Olivier,

Voilà deux exemples de la table Northwind..Orders, qui font la somme
de Freight pour les lignes dont EmployeeID = 2:

-- plus efficace
select EmployeeID, Freight
from (
select
EmployeeID,
case when EmployeeID = 2 then null else OrderID end TempCol,
sum(Freight) as Freight
from Northwind..Orders
group by
EmployeeID,
case when EmployeeID = 2 then null else OrderID end
-- OrderID est la clé primaire, garanti d'être unique
) T
order by EmployeeID

-- ou

-- plus facile à lire
select EmployeeID, sum(Freight) as Freight
from Northwind..Orders
where EmployeeID <> 2
group by EmployeeID
union all
select EmployeeID, Freight
from Northwind..Orders
where EmployeeID = 2 -- ajouter OR EmployeeID IS NULL, si on a des
valeurs NULL

SK

olivier wrote:

bonjour,

j'aimerais faire la sum d'une colonne de certaines lignes qui correpondent à
un critére et resortir les lignes qui ne correspodent pas sans sum.

en gros j'ai une jointure gauche des order qui font la sum des prix de
order_detail qui correpondent a un critére particulier mais je veux aussi
sortir les autres mais sur la même ligne donc non groupés.

Je ne sais pas si il on peux utiliser un sum avec un critére genre sum (x,
where toto = 'kj')