【发布时间】:2018-01-27 21:51:24
【问题描述】:
我正在尝试使用合并功能更新产品历史的平均评分数
MERGE ProductRankingHistory P
USING Review R ON P.PRHProduct = R.ProductID
WHEN MATCHED THEN
UPDATE
SET P.PRHAverageRating = (SELECT AVG(ReviewRateValue)
FROM Review
WHERE ProductID = P.PRHProduct
AND YEAR(ReviewRateDate) = PRHYear);
我得到这个错误:
消息 8672,第 16 层,状态 1,第 2 行
MERGE 语句多次尝试更新或删除同一行。当目标行匹配多个源行时会发生这种情况。 MERGE 语句不能多次 UPDATE/DELETE 目标表的同一行。优化 ON 子句以确保目标行最多匹配一个源行,或使用 GROUP BY 子句对源行进行分组。
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
复制this?
标签: sql sql-server merge