Исправлена ​​ошибка - Ошибка преобразования при преобразовании значения nvarchar в тип даты int в SQL - PullRequest
0 голосов
/ 01 апреля 2019

Я получаю эту ошибку:

Сообщение 245, Уровень 16, Состояние 1, Строка 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

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете использовать try_convert():

select . . . 
from . . . 
     on . .  and
        try_convert(int, cc.plantid) = cc.plantid;

Однако, похоже, это не решит вашу проблему, вам нужно конвертировать это все время, когда требуются данные.

Рекомендуемое решениеизменить вашу модель данных, если это возможно с немедленным эффектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...