不同表格的总价格

时间:2013-05-30 12:51:30

标签: 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 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

1 个答案:

答案 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