关于不可读的SQL和返回结果

时间:2014-10-15 22:21:49

标签: sql sql-server

关于不可读的SQL和返回结果

我有这个数据库记录

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"型

2 个答案:

答案 0 :(得分:0)

好吧,如果你知道可接受的精度是多少,你可以尝试rounding it

select 
    ROUND(sum(tran_final_net_bal), 10) AS tran_final_net_bal 
from transaction where tran_account_id='1021'

答案 1 :(得分:0)

如果这是MySQL,则下面的查询将起作用。

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