如何在T-SQL中修复此错误?以下行成功执行:
SET @dPERCENT_QC_COMPLETED = CASE WHEN @NUM_QC_RECEIVED = 0
THEN 0
ELSE @NUM_QC_COMPLETED / @NUM_QC_RECEIVED
END
但是此行失败,错误代码如下:
SET @dPERCENT_QC_COMPLETED = CASE WHEN @NUM_QC_RECEIVED = 0
THEN 0
ELSE (100 * @NUM_QC_COMPLETED / @NUM_QC_RECEIVED)
END
Msg 8115,Level 16,State 8,Line 73 算术溢出错误将int转换为数据类型numeric。
@dPERCENT_QC_COMPLETED是小数(2)。其他变量是整数。问题我认为目前这些其他整数值= 1,因此该表达式的计算结果为1。
答案 0 :(得分:1)
decimal(2)
永远无法应对100
%完成率。你为什么使用那种数据类型?