在金钱列上求和 returns 0

Sum returns 0 on a money column

当我运行这个查询时:

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 上尝试过此操作。

为了澄清,我想要 amount 列中每个 id 的总值,在整个 table 中,不仅仅是每一行,但我只得到在 SQL.

中使用 SUM 函数时为零

我注意到的另一件事是,id 列是 nvarchar,而不是 table 的 ID/key。这是一个旧的数据库,出于某种原因,它更喜欢将 nvarchars 链接到主键上。我无法更改 table 结构。

架构

CREATE TABLE [dbo].[transaction](
    [trindex] [int] IDENTITY(1,1) NOT NULL,
    [id] [varchar](15) NULL,
    [date] [datetime] NULL,
    [amount] [money] NULL,
    [acct] [varchar](20) NULL
)

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