在我的查询中将int转换为数据类型数值的'算术溢出错误'错误
问题描述:
我的逻辑查询有什么问题?我只是想计算用户评级在我的查询中将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
答
看来,当你到小数点后投大的int decimal(7,6)
小数定义的数字的总数,然后是电话号码出现错误。因此,在这种情况下,最大数量为9
,你可以转换为decimal(7,6)
当您尝试投的数量比9 decimal(7,6)
更大,那么你会得到一个错误
算术溢出错误转换的int数据类型数字。
请添加样本数据 –
什么是数据类型'@ Rating'? –
这是一个开始的好地方:[如何在公共论坛上发布T-SQL问题](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-上一个公开论坛/) – Marusyk