2017-10-10 70 views
1

我的逻辑查询有什么问题?我只是想计算用户评级在我的查询中将int转换为数据类型数值的'算术溢出错误'错误

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 
+0

请添加样本数据 –

+0

什么是数据类型'@ Rating'? –

+0

这是一个开始的好地方:[如何在公共论坛上发布T-SQL问题](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-上一个公开论坛/) – Marusyk

回答

0

看来,当你到小数点后投大的int decimal(7,6)

小数定义的数字的总数,然后是电话号码出现错误。因此,在这种情况下,最大数量为9,你可以转换为decimal(7,6)

当您尝试投的数量比9 decimal(7,6)更大,那么你会得到一个错误

算术溢出错误转换的int数据类型数字。

相关问题