2011-04-21 108 views
0

如何在T-SQL中修复此错误?下面的行执行成功:将int转换为数据类型数值的算术溢出错误

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 

消息8115,级别16,状态8,行73 算术溢出错误转换INT为数据类型数值。

@dPERCENT_QC_COMPLETED是一个小数(2)。其他变量是整数。问题我认为目前这些其他整数值= 1,因此此表达式计算结果为1.

回答

1

decimal(2)永远无法应付100完成百分比。你为什么使用该数据类型?

+0

哦,我没看到!我忘了我乘以100.你是对的;这固定它! – salvationishere 2011-04-21 22:24:34

相关问题