我有下表:
订单(OID,计数,产品ID,TableNr)
表格(TableNr,名称,编号)
产品(产品ID,奖品)
现在我想计算每张桌子赚了多少钱。我认为要做到这一点,我必须对Orders.TableNr进行分组。但是如何将Products.Prize和Orders.Count相乘,然后将结果汇总到组中?
答案 0 :(得分:1)
您正在描述联接和聚合:
select o.tableNr, sum(o.count * p.prize) totalEarned
from orders o
inner join products p on p.productId = o.productId
group by o.tableNr
如果还要显示表信息(例如表名),则可以添加另一个join
:
select t.tableNr, t.name, sum(o.count * p.prize) totalEarned
from table t
inner join orders o on o.tableNr = t.tableNr
inner join products p on p.productId = o.productId
group by t.tableNr, t.name
请注意,table
是一个SQL关键字,因此不是表名的好选择。