当我运行此查询时:
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
答案 0 :(得分:2)
在执行求和之前尝试转换为数字:select id,SUM(amount),SUM(convert(numeric(18,2),amount))