0
の特定のセルを更新するために、私はこれらの2つのテーブルがあります。トリガーが別のテーブル
dbo.Restaurants(rid,name,phone,area,address,zip,desc,foodtype,avgRating)
と
dbo.Reviews(rev_id,rest_id,user_id,taste, service,environment,value,average,comment)
を私はこれを行うトリガーを作成しようとしてきた: ときに行dbo.Reviewsが削除、更新、または挿入された場合、トリガーはレストランの新しい平均評価を次のように計算します。
select rid, round(avg(average)*20,0) as 'average'
from dbo.Restaurants inner join dbo.Reviews on rid=rest_id
group by rid
そしてdbo.RestaurantsのavgRatingセルを更新します(dbo.Restaurants.rid = dbo.Reviews.rest_id)。これまでのところ、私はこれを作ってみた
:明らかに動作しません
CREATE TRIGGER [defAverage]
ON [dbo].[Reviews]
AFTER UPDATE, DELETE, INSERT
AS
BEGIN
select rid, round(avg(average)*20,0) as 'average'
from Restaurants inner join Reviews on rid=rest_id
group by rid
order by 'average' desc
SET NOCOUNT ON
UPDATE [dbo].[Restaurants]
SET [dbo].[Restaurants].avgRating = 'average'
where [dbo].[Reviews].rest_id = [dbo].[Restaurants].rid
END
、そう私はここではないでしょう。 私はSQL Server Tools 2012を使用するVisual Studio Ultimate 2013を使用しています。
お時間とご提案をいただきありがとうございます。