Sql server ';将int转换为数据类型numeric';我的查询出错

Sql server ';将int转换为数据类型numeric';我的查询出错,sql-server,stored-procedures,Sql Server,Stored Procedures,我的逻辑查询有什么问题?我只想计算用户的评分 UPDATE MyTable SET RatingAvg = CASE WHEN RatingAvg = 0 THEN @Rating ELSE CAST(((( CAST(RatingAvg AS DECIMAL(7,6)) * CAST(ReviewCount AS DECIMAL(7,6))) + CAST(@Rating AS DE

我的逻辑查询有什么问题?我只想计算用户的评分

UPDATE MyTable
        SET RatingAvg = CASE
                        WHEN RatingAvg = 0 THEN @Rating
                        ELSE CAST(((( CAST(RatingAvg AS DECIMAL(7,6)) * CAST(ReviewCount AS DECIMAL(7,6))) + CAST(@Rating AS DECIMAL(7,6))) / CAST((ReviewCount + 1)AS DECIMAL(7,6))) AS DECIMAL(7,6))
                        END

当您将大整数转换为十进制(7,6)

Decimal定义总位数,然后是小数后的数字。因此,在这种情况下,最大数字是
9
,您可以将其转换为
十进制(7,6)

当您尝试将大于9的数字强制转换为十进制(7,6)时,您将得到一个错误

将int转换为数据类型numeric时出现算术溢出错误


请添加示例数据什么是
@Rating
的数据类型?这是一个很好的起点: