sql-按组对乘法结果求和

chy5wohz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(404)

我有以下表格:
订单(oid、count、productid、tablenr)
表格(表格编号、名称、编号)
产品(productid,prize)
现在我想计算一下每张table赚了多少钱。我认为要做到这一点,我必须按订单分组。但是我怎样才能将products.prize与orders.count相乘,然后在组内汇总结果呢?

xsuvu9jc

xsuvu9jc1#

您正在描述联接和聚合:

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关键字,因此不是表名的好选择。

相关问题