Как использовать FORMAT (Employee.Salary, 'C', EN-US) в выражении SUM?Получение ошибки 'Конверсия не удалась - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно отобразить столбец «Налоговая заработная плата» в формате US $ IN SQL с использованием функции FORMAT. Я использую сервер Microsoft SQL. Может кто-нибудь, пожалуйста, помогите? Получение ошибки:

"Преобразование не удалось при преобразовании значения nvarchar '$ 17 037,72' в тип данных int."

Ниже приведен запрос, который я написал:

SELECT EMPLOYEE.ID, EMPLOYEE.NAME, P.DEDCODE,
       SUM(CASE WHEN P.DEDCODE ='SS2' THEN FORMAT(P.AMOUNT,'C','EN-US') ELSE 0 END) AS 'TAX WAGE'
FROM EMPLOYEE
JOIN P ON EMPLOYEE.ID = P.ID and EMPLOYEE.COMPANY = P.COMPANY 
WHERE
      P.DEDCODE ='SS2'
      AND P.YEAR ='2018'
GROUP BY 
      EMPLOYEE.ID,
      EMPLOYEE.NAME,
      P.DEDCODE

Я ожидаю, что в столбце налоговой заработной платы вместо простого числа 70,5

будет выведено 70,5 долл. США.

1 Ответ

2 голосов
/ 04 апреля 2019

Ваша функция форматирования должна быть на SUM():

FORMAT(SUM(CASE WHEN P.DEDCODE = 'SS2' THEN P.AMOUNT ELSE 0 END),'C','EN-US') AS [TAX WAGE]

Вы уже включили WHERE предложение с P.DEDCODE ='SS2', тогда зачем вам нужно условное агрегирование, оно должно быть только

SELECT . . . , 
       FORMAT(SUM(P.DEDCODE),'C','EN-US') AS [TAX WAGE]
. . . 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...