2011-04-21 104 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

相關問題