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 |
我根据临时表 (#temp2) 中的某些计算插入此值,但出现错误:
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]))
|
我还检查了我使用的列是 decimal(38,6) 类型的
但仍然无法找到。
谁能帮帮我?
- @a 的类型是什么?
- 替换列
这是你的代码缩进更好一点:
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])) |
请注意,您正在返回一些值作为数字 (0) 和一些作为字符串 (-)。
SQL Server 必须定义返回类型。它决定一个数字。问题可能是将 – 转换为数字。
来源:https://www.codenong.com/40322457/