来自mysql sum的随机结果

时间:2014-02-06 19:57:54

标签: php mysql

我是新来的,请保持温柔。我有一个MySQL数据库,它存储客户订单的值,格式为2d.p.这是我正在使用的代码......

Select sum(Total) from invoiceitems where InvoiceNumber ='$Invoice'

一张特定发票的三个值是1,080.00,42.00& 30.00 - 结果我总共73.00。请有人告诉我我需要做些什么来修改它?

3 个答案:

答案 0 :(得分:3)

如果你将它们存储为varchar,那么它是有意义的:42 + 30 + 1。 尝试将它们保存为float并在PHP上格式化数字,使其显示为1,000

答案 1 :(得分:0)

我在这里做了很多猜测,我需要知道你是否在数据库中将值保存为float,double或string值。然后我们还需要看看你的PHP代码如何添加值 - 可能来自一些POST。 POST变量是字符串变量。如果我们在数字上有一个komma作为你的1,080.00我们首先需要删除komma。

$InvValue1 = "1,080";
$b = str_replace( ',', '', $InvValue1 ); 

if( is_numeric( $b ) ) {
$InvValue1 = $b;
}

现在,您可以将其他值添加到此新值,然后将它们全部保存到您的数据库中。

答案 2 :(得分:0)

请参阅有关更改总计字段类型的其他答案。

如果你必须用逗号保持varchar,这应该有效:

SELECT SUM(CAST(REPLACE(Total, ',','') as DECIMAL(65,2))) as sum FROM invoiceitems WHERE InvoiceNumber = '$Invoice'

首先删除逗号(使用替换),然后将值转换为适合于加起来的数字类型,同时保持小数(强制转换为十进制),然后将它们相加。

相关问题