2016-08-19 18 views
0

我试着总结蒙上了列名,这样的演员:ISNULL用SUM与在同一列

ISNULL(SUM(CAST(VPL.Amount AS VARCHAR(10))), '') as total 

,但我得到这个错误:

Operand data type varchar is invalid for sum operator.

谢谢

+5

的错误是明确提到像十进制/ INT查询,你只能'SUM'数值 – Petaflop

+0

刚*不*在求和之前转换为文本 - 即将SUM(CAST)的顺序颠倒为CAST(SUM' –

回答

2

您应该首先执行SUM部分,然后投射结果。

ISNULL(CAST(SUM([VPL].[Amount]) AS VARCHAR(10)), '') AS [total] 
+0

谢谢。但是我得到这个错误:操作数数据类型varchar对求和运算符无效 – SavantCode

+0

是你在原始问题中说过的同样的错误,你确定你使用了答案中提供的代码吗?适用于我,真的不应该提高错误。 –

1

SUM只能与NUMERIC列上。 NULL值被忽略。

CAST(SUM(VPL.Id) AS VARCHAR(10)) as total 
+1

谢谢你的回复 – SavantCode

0

使用列数据类型在其中为列“VPL.Amount”

ISNULL(SUm(CAST(VPL.Amount AS DECIMAL)), '') as total 
+0

谢谢你的回复 – SavantCode