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')
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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')
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" <toto@toto.com> wrote in message
news:%23FGe%23z%236DHA.3304@tk2msftngp13.phx.gbl...
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')
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')
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')
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')
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')