关于无法读取的SQL sum返回结果

关于无法读取的SQL sum返回结果,sql,sql-server,Sql,Sql Server,关于无法读取的SQL sum返回结果 我有这个数据库记录 select tran_final_net_bal from transaction where tran_account_id='1021' tran_final_net_bal 2509.3 -30.7 -2478.6 结果应该是0 但是,如果我使用以下sql语句 select sum(tran_final_net_bal) AS tran_final_net_bal from transaction where tran_ac

关于无法读取的SQL sum返回结果

我有这个数据库记录

select tran_final_net_bal from transaction where tran_account_id='1021'


tran_final_net_bal
2509.3
-30.7
-2478.6
结果应该是0

但是,如果我使用以下sql语句

select sum(tran_final_net_bal) AS tran_final_net_bal from transaction where tran_account_id='1021'
返回的结果是

tran_final_net_bal
4.54747350886464e-13
我如何解决这个问题以得到0,这是本例中的正确答案


tran_final_net_bal是“double”类型的

如果你知道可接受的精度,你可以试试


如果这是MySQL,那么下面的查询将起作用

select sum(CAST(tran_final_net_bal AS DECIMAL(10, 2))) AS tran_final_net_bal
from transaction
where tran_account_id='1021';

您正在使用什么版本的RDBMS?这似乎不是SQL Server。请尝试将select cast(sum(tran_final_net_bal)转换为十进制(10,2))作为总计。列名“tran_final_net_bal”听起来像是要在该列中存储金钱。这真的是你在做的吗?如果你想存储钱,你需要修复表,而不是查询。您需要使用像
numeric(n,m)
这样的数据类型,而不是
float
real
select sum(CAST(tran_final_net_bal AS DECIMAL(10, 2))) AS tran_final_net_bal
from transaction
where tran_account_id='1021';