MySQL加上负小数

时间:2012-09-28 20:21:26

标签: mysql sum negative-number decimal

我的表格中有一个数量列,我正在尝试对值进行求和。字段类型是varchar(20)。下面的数量之和应该恰好相加0.它是负小数和正小数的混合。

exhibit A(截图)

当我执行下面的总和时,我得到一吨小数而不是0.我假设这是一个数据类型问题。解决这个问题的最佳方法是什么?

exhibit B(截图)

1 个答案:

答案 0 :(得分:2)

您不应将数字数据存储为字符串,但如果这样做,则需要cast()SUM()聚合应用于其中:

SELECT SUM(CAST(yourcolumn AS DECIMAL(10, 2))) 
FROM yourtable

所以你的查询将是:

select sum(cast(qty as DECIMAL(10, 2)))
from inventory i
where i.refDocNum = 485
  and i.refApp = 'WO'
  and i.type in (20, 21)