我收到这个错误:
Msg 245,Level 16,State 1,Line 10 将nvarchar值'PLANT001'转换为数据类型int时转换失败
我尝试将转换和转换为int添加到第一行获取错误以及最后一次连接但我仍然得到错误。
SELECT
hh.PlantID AS 'Plant ID',
hh.ERP AS 'ERP',
hh.ShipViaID AS 'Ship Via ID',
cc.carrier AS 'Carrier',
cc.service AS 'Service',
cc.packagetype AS 'Pkg Type',
hd.HandlingChargeTypeID AS 'Handling Charge ID',
hd.HandlingCharge 'Handling Charge',
hr.AdditionalPercentageAdded 'Heading Addl % Added',
hd.ApplyToEachPackage AS 'Apply to Each Pkg',
hr.MinimumHandlingCharge AS 'Min Handling Charge',
hr.MaximumHandlingCharge AS 'Max Handling Charge'
FROM
HandlingChargeHeader hh
JOIN
HandlingChargeDetails hd ON hd.HandlingChargeHeaderID = hh.ID
JOIN
HandlingChargeRequirements hr ON hh.ID = hr.HandlingChargeHeaderID
LEFT JOIN
xcarrier_codes cc ON cc.ID = hh.ShipViaID AND hh.PlantID = cc.plantid
cc.plantid
= nvarchar
,hh.plantid
= int
你可以使用try_convert()
:
select . . .
from . . .
on . . and
try_convert(int, cc.plantid) = cc.plantid;
但是,这似乎无法解决您需要在需要的数据时始终进行转换的问题。
建议的解决方案是在可能立即生效的情况下更改数据模型。