我已经在这里阅读了有关此主题的所有内容,但仍然无法解决我的错误问题。
我的代码列在下面
-- ALLOCATE FRT Revenue BASED ON TOTAL REVENUE
CASE
WHEN (SUM(SOP2.XTNDPRCE) OVER(PARTITION BY SOP1.SOPNUMBE))!=0 THEN
(SOP2.XTNDPRCE/(SUM(SOP2.XTNDPRCE) OVER(PARTITION BY SOP1.SOPNUMBE))) * SOP1.FRTAMNT
else 0
END as [FrtPrice],
-- ALLOCATE FRT COSTS BASED ON TOTAL REVENUE
CASE
WHEN (SUM(SOP2.XTNDPRCE) OVER(PARTITION BY SOP1.SOPNUMBE))!=0 THEN
(SOP2.XTNDPRCE/(SUM(SOP2.XTNDPRCE) OVER(PARTITION BY SOP1.SOPNUMBE))) *
--Calculate default Frt cost based on Current Invoice Number
(SELECT
CASE Isnumeric(rtriM(ltrim(f.USRDEF04)))
WHEN 1 THEN
Cast(F.USRDEF04 as float)
ELSE NULL
END AS ActFrtCost
FROM SOP10106 f
WHERE f.SOPTYPE= SOP1.SOPTYPE AND f.SOPNUMBE = SOP1.SOPNUMBE)
else 0
END as [FrtPrice],
SOP1是我的发票标题,SOP2是我的发票明细,SOP10106在自定义字段中将我的运费作为varchar。 SOP10106中的某些行包含文本,但具有数值的行是我的运费。 基本上,我正在尝试为每张发票分配所有订单项的运费。
我尝试的所有内容仍会导致相当恼人的“错误转换”消息。
Msg 8114,Level 16,State 5,Line 3将数据类型varchar转换为float时出错。