Сообщение об ошибке операнда при суммировании столбцов - PullRequest
0 голосов
/ 19 октября 2019

В моем запросе содержится следующее утверждение, и я получаю сообщение об ошибке:

 SUM(isnull((T1.RecvQty),0)) '3rd Party Received Qty',
 SUM(isnull((T0.Quantity-T0.Quantout),0)) 'SAP Onhand',  
 SUM(isnull((T1.recvQty),0)- isnull((T0.Quantity-T0.QuantOut),0)) as 'Varience',

Ошибка:

Сообщение 8117, уровень 16, состояние 1, строка 26
Тип данных операнда nvarchar недопустим для оператора суммы.

1 Ответ

0 голосов
/ 19 октября 2019

Ошибка должна быть очевидной.

Исходя из сообщения об ошибке, я предполагаю, что вы используете SQL Server. Просто используйте try_convert():

SUM(TRY_CONVERT(NUMERIC(20, 4), T1.RecvQty)) as [3rd Party Received Qty],

Я предполагаю допустимое числовое представление для значения.

РЕДАКТИРОВАТЬ:

Если вы не хотите NULLвозвращается, затем используйте COALESCE() после агрегации:

COALESCE(SUM(TRY_CONVERT(NUMERIC(20, 4), T1.RecvQty)), 0)

Обычно это не требуется, поскольку SUM() игнорирует NULL значения.

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