Varchar对Sum运算符无效

pet*_*ter 3 sql t-sql sql-server sql-server-2008

我有一个名为Cos的表,Amt的数据类型是Float,示例数据如下所示:

Acct  Period  F_year   Amt
Detf  1       2011     Null
Detf  2       2011     Null
Detf  3       2011     1669.57
FTE   1       2011     3205.11
FTE   2       2011     0
FTE   3       2011     Null
Run Code Online (Sandbox Code Playgroud)

我写了一个像这样的查询:

Select Acct,Period,F_year, Sum(AMT) as Amt
from dbo.Cos
Group By Acct,Period,F_year
Where Amt is not null
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Msg 8117, Level 16, State 1, Line 1
Operand data type varchar is invalid for sum operator.
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

Ica*_*rus 21

试着这样做:

Select Acct,Period,F_year, Sum(isnull(cast(AMT as float),0)) as Amt
from dbo.Cos
Group By Acct,Period,F_year
Run Code Online (Sandbox Code Playgroud)