MySQL SUM()始终返回0值

时间:2014-05-18 14:37:30

标签: mysql sum

我在表格中存储了varchar数量。

尝试对它们求和时,它总是返回0.00。

以下是仅使用db中的一条记录的示例。

SELECT col1, SUM(CAST(col2 AS DECIMAL(20,2))) derived1
                    FROM table
                    WHERE col3 = 'FIT' 
                    AND col1 = '6211195'
                    GROUP BY col1

返回一行,其值为0。 通过从查询中删除SUM和CAST,我可以看到它正在拉动它应该的值,但我无法求和或转换它,添加其中任何一个中断它并再次返回0。 我也尝试将字段转换为十进制类型,它只是将所有值都归零。

编辑:

嗯,我刚刚运行了一个REGEX查询来检测不是字母数字值或小数点的任何内容。似乎在我看不到的字段中有非ascii字符,弄乱了类型转换。随着我的了解,我会继续更新。

1 个答案:

答案 0 :(得分:1)

显示col2的一些示例值。真正是数字的字符串被视为数字。因此'1'将成为1

但是,如果字符串不是以数字'-''+'(在前导空格之后)开头,那么它将是0(在大多数情况下)。因此'A1'将是0。等等。和'$100'一样。

课程是:如果列包含数字,请将它们存储为数字。真的很简单。