我有以下查询
with CTE as
(
select Barkod, sum(kolicina) as Kolicina
from stocks
where Barkod = '555'
group by Barkod
)
select s.Barkod, s.Kategorija, s.Artikal, s.Opis, s.Kolicina, s.N_cena,
s.N_Iznos, s.P_cena, s.P_Iznos, s.datum, s.Golemina from Stocks as s
join CTE as b
on b.Barkod = s.Barkod
此查询的结果是
555 КОШУЛА QWRSF QWRSF 10 10.00 NULL 20.00 NULL NULL NULL
555 КОШУЛА QWRSF QWRSF 1 10.00 NULL 20.00 NULL NULL NULL
我需要得到以下结果
555 КОШУЛА QWRSF QWRSF 11 10.00 NULL 20.00 NULL NULL NULL
所以我需要总结一下Kolicina领域并将其全部排成一行。
答案 0 :(得分:1)
你非常亲密......只是最后一个分组。
select s.Barkod, s.Kategorija, s.Artikal, s.Opis, sum(s.Kolicina), s.N_cena,
s.N_Iznos, s.P_cena, s.P_Iznos, s.datum, s.Golemina from Stocks as s
group by s.Barkod, s.Kategorija, s.Artikal, s.Opis, s.N_cena,
s.N_Iznos, s.P_cena, s.P_Iznos, s.datum, s.Golemina
您可能需要求和的任何其他行都可以移出组,并在选择行中将sum()放在其中。
答案 1 :(得分:0)
您需要找到一些方法来聚合其他列。
e.g。
select
Barkod,
sum(kolicina) as Kolicina,
Max(Kategorija) as Kategorija,
Max(Artikal) as Artikal,
Max(Opis) as Opis,
Max(N_cena) as N_cena,
Max(N_Iznos) as N_Iznos,
Max(P_cena) as P_cena,
Max(P_Iznos) as P_Iznos,
Max(datum) as datum,
Max(Golemina) as Golemina
from
stocks
where
Barkod = '555'
group by
Barkod
但是,这种模式往往会暗示您的数据未正确规范化。
或者,如果非求和列总是具有相同的Barkod值,您可以这样做:
select
Barkod,
sum(kolicina) as Kolicina,
Kategorija,
Artikal,
Opis,
N_cena,
N_Iznos,
P_cena,
P_Iznos,
datum,
Golemina
from
stocks
where
Barkod = '555'
group by
Barkod,
Kategorija,
Artikal,
Opis,
N_cena,
N_Iznos,
P_cena,
P_Iznos,
datum,
Golemina
答案 2 :(得分:0)
您需要更改..., s.Kolicina, ...
的{{1}}才能从..., b.Kolicina, ...
获取SUM
。您的方式就是从table b
选择所有Kolicina
。