根据从第三个表获取多个值的其他表中的值更新表上的所有行

时间:2016-09-29 19:30:01

标签: sql sql-server tsql

所以我在Microsoft SQL Server的数据库中有三个表。

该系统是学习的一个例子,它包含表A,这是一个有ID和花在购买东西上的总金额的学校。

表B包含您可以使用ID和价格购买的东西

表C包含所有订单,order_id,school_id,stuff_id和东西数量

我的问题是这个,我必须创建一个触发器,当在表C中插入一个值时,更新所有学校花费的总金额。我无法弄清楚如何做到这一点。特别是因为我必须计算购买的东西的数量。

如果您想像我一样查看sql,可以在此处执行:http://sqlfiddle.com/#!6/265f0

1 个答案:

答案 0 :(得分:1)

您想要一个如下所示的查询:

select c.school_id, sum(b.price)
from b join
     c
     on b.stuff_id = b.stuff_id
group by c.school_id;

可以使用触发器。但这要复杂得多,因为你必须处理已删除和更新的记录,以及插入它们。