mysql总和显示十进制类型的错误答案

mysql总和显示十进制类型的错误答案,mysql,decimal,sum,Mysql,Decimal,Sum,销售标识=12 产品价格=2090.00 收费=83.60 手续费=0.00 它们都是十进制(10,2)类型。我的问题是 SELECT SUM( making_charge + product_rate + handling_charge ) AS tax_tourn FROM `sales_details` WHERE `sales_id` =12 我得到的结果是 税收=10784.40 这是不对的 2090.00+83.60+0.00=2173.60 为什么mysql给出了错误

销售标识=12
产品价格=2090.00
收费=83.60
手续费=0.00

它们都是十进制(10,2)类型。我的问题是

SELECT SUM( making_charge + product_rate + handling_charge ) AS tax_tourn
FROM  `sales_details` 
WHERE  `sales_id` =12

我得到的结果是
税收=10784.40
这是不对的


2090.00+83.60+0.00=2173.60

为什么mysql给出了错误的答案? 新添加的详细信息 我有两张销售和销售明细表。sales\u id是sales的主键,sales\u details\u id是sales\u details的主键。
sales_id是sales_details中的外键
销售明细中可以有多行具有相同的销售id。


但是在我们的例子中(
sales\u id
=12)只有一行。

听起来好像有多行
sales\u id=12
如果此代码返回的答案超过1,则有多行匹配where子句

SELECT COUNT(*)
FROM  `sales_details` 
WHERE  `sales_id` =12

你不需要对一行使用求和聚合函数。检查与
sales\u id
=12相对应的行数,我怀疑不止一行,如果是,那么你需要为工作添加一个附加条件。为了实现这一点,我根据你的评论+1为我的问题添加了新的细节。您应该增加这个答案,以解决OP使用的
SUM
aggregate函数。我检查了一下,sales\u id=12asah只有一行,我不明白您说了什么。我对mysql非常陌生。你能给我举个例子吗?@praveenmon:那你为什么接受另一个同样的回答?