Символ в десятичном - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь умножить два поля вместе. Проблема в том, что один CHAR, а другой DECIMAL.

OEAUDD.QTYSHIPPED = DECIMAL
LITERS.[VALUE] = CHAR 

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

Оригинальный код:

CONVERT (DOUBLE PRECISION, TABLENAME.QTYSHIPPED*LITERS.[VALUE]) AS 'TotalLitersSold'

Некоторое время это работало нормально, а затем внезапно начал выдавать ошибку:

Сообщение 8114, уровень 16, состояние 5, строка 3 Ошибка преобразования типа данных varchar в числовой

Попытка:

CONVERT (DECIMAL,LITERS.[VALUE]) 

и получил ту же ошибку.

Попытка:

CAST (LITERS.[VALUE] AS DECIMAL) 

и получил ту же ошибку.

Есть ли способ изменить тип данных этого столбца на десятичный, чтобы я мог умножить два значения вместе?

Заранее благодарю за помощь.

1 Ответ

1 голос
/ 30 марта 2019

Используйте TRY_CONVERT() и используйте его для каждого значения отдельно:

(TRY_CONVERT(DOUBLE PRECISION, TABLENAME.QTYSHIPPED) *
 TRY_CONVERT(DOUBLE PRECISION, LITERS.[VALUE])
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...