【发布时间】:2016-10-29 18:45:54
【问题描述】:
我正在使用以下代码
(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')
我根据临时表 (#temp2) 中的一些计算插入此值,但出现错误:
消息 8114,级别 16,状态 5,过程 deepanshu_temp,第 141 行
将数据类型 varchar 转换为数值时出错。消息 8114,级别 16,状态 5,过程 deepanshu_temp,第 141 行
将数据类型 varchar 转换为数值时出错。
我已经分析出错误在我的代码中'then'之后的那一行:
(((#temp.[Primary Plan]) *((@a/30) + 20)) - (#temp.[stockC&F] + #temp.[MTD Primary]))
我还检查了我使用的列的类型是decimal(38,6)
但仍然无法找到。
谁能帮帮我?
【问题讨论】:
-
@a 的类型是什么?
-
用数字文字一一替换列和变量。你会找到原因的。
标签: sql sql-server tsql stored-procedures