2014-02-10 70 views
3

錯誤:將表達式轉換爲數據類型nvarchar的算術溢出錯誤。SQL將表達式轉換爲數據類型nvarchar的算術溢出錯誤

UPDATE [dbo].ForecastAccuracyKeyAccounts 
SET ThreeMonthPercent = ((Actual - ThreeMonthForecast)/Actual) * 100, SixMonthPercent = ((Actual - SixMonthForecast)/Actual) * 100, 
NineMonthPercent = ((Actual - NineMonthForecast)/Actual) * 100 
WHERE Actual != 0 

因爲,我除以實際,我想確保實際不等於零。但是當我在WHERE CLAUSE中添加語句時,我無法擺脫錯誤。

+0

的數據類型是你的列?它看起來像是有什麼奇怪的事情正在進行類型轉換 – Brad

+0

你正在使用什麼數據庫? –

+0

實際浮動; ThreeMonthPercent nvarchar(7); ThreeMonthForecast float;在我添加Where子句之前,這工作正常。我得到的唯一錯誤是實際列爲0. – ahsatan

回答

1

也許嘗試ISNULL

UPDATE [dbo].ForecastAccuracyKeyAccounts 

    SET ThreeMonthPercent = ((Actual - ISNULL(ThreeMonthForecast,0))/Actual) * 100, 

    SixMonthPercent = ((Actual - ISNULL(SixMonthForecast,0))/Actual) * 100,  

    NineMonthPercent = ((Actual - ISNULL(NineMonthForecast,0))/Actual) * 100 

    WHERE Actual != 0 
+0

對不起格式,我從我的手機發布。你有一個ThreeMonthForecast的NULL值。那就是問題所在。使用IsNull應該修復它。 –

+0

這不起作用,我仍然遇到溢出錯誤。儘管謝謝您的幫助!從手機打字很困難! – ahsatan

+0

你可以增加nvarchar(7)的大小,看看是否有幫助。 –

相關問題