Sql 不同表格的总价

Sql 不同表格的总价,sql,Sql,我有一个客户、物品和订单的数据库。这是一个考试项目,所以可能不是现实生活中最好的。我有这个问题。我想要一份我们所有顾客都买了什么的清单和总价,但我什么都做不到 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

我有一个客户、物品和订单的数据库。这是一个考试项目,所以可能不是现实生活中最好的。我有这个问题。我想要一份我们所有顾客都买了什么的清单和总价,但我什么都做不到

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
但我就是找不到任何我试过的东西,给我我想要的

我希望你能帮助我,也希望你能理解我的意思(我不是以英语为母语的人)

我已经上传了我们数据库的图像,因此您可以看到我们数据库的外观:

为了清楚起见,只需翻译一下:

Kunder = customers
Varer = items
Ordre = orders
Indeholder = includes

只需在GROUPBY子句上添加更多列。 除了聚合函数[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

谢谢你,这真的帮了我们的忙!:)