我有一个包含客户,物品和订单的数据库。这是一个考试项目,对现实生活来说可能不是最好的。我有这个问题。我想要一份列出我们所有客户购买的产品以及总价格,但我无法获得任何工作。
select Kunder.navn,Ordre.*, Indeholder.antal, Varer.*
from Kunder
join Ordre on Kunder.kunde_nr=Ordre.kunde_nr
join Indeholder on Ordre.ordre_nr=Indeholder.ordre_nr
join Varer on Varer.vare_nr=Indeholder.vare_nr
where er_industri=0
order by bestillingsdato
我尝试了很多:
sum (Indeholder.antal * Varer.privat_pris) as total
group by Ordre.ordre_nr
但我无法得到任何我尝试过的东西,给我正在寻找的东西。
我希望你能帮助我,并且你理解我的意思(我不是母语为英语的人)。
我上传了mapping的图片,因此您可以看到我们的数据库是什么样的:
为清楚起见,只是翻译:
Kunder = customers
Varer = items
Ordre = orders
Indeholder = includes
答案 0 :(得分:0)
只需在group by子句中添加更多列。 除了聚合函数[SUM(),COUNT(),AGV()]之外,group by子句必须出现相同的列列表 并在select子句中:
所以,通常:
select <col1, col2, col3...>, SUM(...)
from ...
group by <col1, col2, col3...>
如果您想要每个客户和订单灌浆:
select Kunder.navn, Ordre.ordre_nr, sum (Indeholder.antal * Varer.privat_pris) as total
from Kunder
join Ordre on Kunder.kunde_nr=Ordre.kunde_nr
join Indeholder on Ordre.ordre_nr=Indeholder.ordre_nr
join Varer on Varer.vare_nr=Indeholder.vare_nr
where er_industri=0
group by Kunder.navn, Ordre.ordre_nr
您也可以按照客户的意见进行操作:
select Kunder.navn, sum (Indeholder.antal * Varer.privat_pris) as total
from Kunder
join Ordre on Kunder.kunde_nr=Ordre.kunde_nr
join Indeholder on Ordre.ordre_nr=Indeholder.ordre_nr
join Varer on Varer.vare_nr=Indeholder.vare_nr
where er_industri=0
group by Kunder.navn