Msg 8114, Level 16, State 5, Procedure deepanshu_temp, Line 141 Error converting data type varchar to numeric
我正在使用以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | (SELECT CASE WHEN [PRIMARY Plan] > 0 THEN CASE WHEN [market_type] = 'WH' THEN CASE WHEN @a > 20 THEN 1 WHEN (((#temp.[MTD PRIMARY] + #temp.[stockC&F])/(#temp.[PRIMARY Plan])) < ((@a/30) + 20) ) THEN (((#temp.[PRIMARY Plan]) *((@a/30) + 20)) - (#temp.[stockC&F] + #temp.[MTD PRIMARY])) -- when (((#temp.[MTD Primary] + #temp.[stockC&F] +#temp.stockplant + #temp.stocktransact)/#temp.[Primary Plan]) < ((@a/30) + 20) ) ELSE 0 END ELSE '' END ELSE '-' END AS 'availibility_alert') |
我根据临时表 (
Msg 8114, Level 16, State 5, Procedure deepanshu_temp, Line 141
Error converting data type varchar to numeric.Msg 8114, Level 16, State 5, Procedure deepanshu_temp, Line 141
Error converting data type varchar to numeric.
我已经分析出错误出现在我的代码中\\'then\\'之后的那一行:
1 | (((#temp.[PRIMARY Plan]) *((@a/30) + 20)) - (#temp.[stockC&F] + #temp.[MTD PRIMARY])) |
我还检查了我使用的列是
但仍然无法找到。
谁能帮帮我?
这是你的代码缩进更好一点:
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT (CASE WHEN [PRIMARY Plan] > 0 THEN (CASE WHEN [market_type] = 'WH' THEN (CASE WHEN @a > 20 THEN 1 WHEN (((#temp.[MTD PRIMARY] + #temp.[stockC&F])/(#temp.[PRIMARY Plan])) < ((@a/30) + 20) ) THEN (((#temp.[PRIMARY Plan]) *((@a/30) + 20)) - (#temp.[stockC&F] + #temp.[MTD PRIMARY])) ELSE 0 END) ELSE '' END) ELSE '-' END) AS availability_alert |
请注意,您正在返回一些值作为数字 (
SQL Server 必须定义返回类型。它决定一个数字。问题可能是将