Sum在money列上返回0

时间:2017-08-02 12:14:02

标签: sql sql-server tsql sql-server-2005

当我运行此查询时:

SELECT [id],[amount],sum(amount) as Total
  FROM transaction
    where id='035'
  group by id, amount

我得到了一些像

的结果
id          amount      Total
035         -55115.24   -55115.24
035         -2126.14    -2126.14 

但是,当我尝试获取总数(对于amount列)时,使用此查询;

 select id, count(*) as howMany, sum(amount) as Total
from transaction
where id='035'
group by id
order by count(*) desc

我得到了这些结果。

id              howMany Total
035             2        0.00

我希望得到

id              howMany Total
035             2        -057241.38

我试图简化查询,没有计数,只是为了检查总和是否正常工作

select id, sum(amount) as Total
from transaction
where id='035'
group by id

但是这又给了我0作为我的总数

id     Total
035     0.00

我也尝试过在ID数量列中具有正值的ID,但行为相同。

为了澄清,我希望整个表中每个amount列的id列中的值总和,而不仅仅是每一行,但是在使用{{{}时,我只会得到零1}} SQL中的函数。

我注意到的另一件事是,SUM列是id,而不是表格的ID /密钥。它是一个旧的数据库,由于某些原因,它有利于仅将nvarchars链接到主键上。我无法改变表结构。

模式

nvarchar

1 个答案:

答案 0 :(得分:2)

在执行求和之前尝试转换为数字:select id,SUM(amount),SUM(convert(numeric(18,2),amount))