2016-08-19 23 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