Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 带负小数的和_Mysql_Sum_Negative Number_Decimal - Fatal编程技术网

Mysql 带负小数的和

Mysql 带负小数的和,mysql,sum,negative-number,decimal,Mysql,Sum,Negative Number,Decimal,我的表中有一个qty列,我正在尝试对这些值求和。字段类型为varchar20。以下数量之和应正好等于0。它是负数和正数的混合 截图 当我执行下面的求和时,我得到的是一吨小数,而不是0。我假设这是一个数据类型问题。解决这个问题的最佳方法是什么 屏幕截图您不应将数字数据存储为字符串,但如果您这样做,则需要对其进行强制转换以对其应用总和聚合: SELECT SUM(CAST(yourcolumn AS DECIMAL(10, 2))) FROM yourtable 因此,您的查询将是: selec

我的表中有一个qty列,我正在尝试对这些值求和。字段类型为varchar20。以下数量之和应正好等于0。它是负数和正数的混合

截图

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


屏幕截图

您不应将数字数据存储为字符串,但如果您这样做,则需要对其进行强制转换以对其应用总和聚合:

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)

你的截图受到限制。请编辑问题并发布示例数据和表结构。@BlueFoots-我更新了到图像的链接,现在应该可以工作了。@drschultz数量的数据类型是什么?为什么要在字符列中存储数值?@ianzz我没有创建架构,我必须使用它注意,在不指定精度的情况下强制转换为十进制只能生成整数值。@bluefeet谢谢,我听到了你关于将其存储为字符串的说法,但这是在我开始这个项目之前。