我需要使用FORMAT函数以美元格式IN SQL显示“税收工资”列。我正在使用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
您的格式函数应该在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]
. . .