MySQL总和两列错误的结果

时间:2014-07-10 09:58:19

标签: mysql sql

我的SQL查询包含来自两个不同表的两个值的总和,对于某些查询会出现错误的结果。

表格如下:


表1

    ID  |  name  |  value         
    1   |  bla   |  88.666666     
    2   |  hi    |  90.555555      
    3   |  bye   |  80.444444

表2

    ID  |  name  |  value         
    1   |  h     |  1.007275     
    2   |  na    |  22.005555      
    3   |  nh    |  23.007878

然后我想将bla和h的值加在一起。然后我做一个简单的查询

SELECT a.`value`+b.`value` AS totalvalue from `table 1` a CROSS JOIN table 2 WHERE a.`ID` = 1 AND b.`ID` = 1 

结果应该是这样的:

    89.673941

但是现实我得到了:

89.6739400000000000000000001

两种表格类型都是TEXT,我尝试过DOUBLE,但没有区别。构建的表只是一个小例子,我使用的表更大,大约。如示例所示,3个结果中的1个可能是错误的。我希望你能提供帮助。

1 个答案:

答案 0 :(得分:1)

尝试使用CAST作为DECIMAL,如

SELECT cast((a.`value`+b.`value`) AS decimal(10,6)) AS totalvalue
FROM `table 1` a
CROSS JOIN TABLE 2
WHERE a.`ID` = 1
  AND b.`ID` = 1