2010-12-15 31 views
3

sales_id = 12
product_rate錯誤答案= 2090.00
making_charge = 83.60
handling_charge = 0.00
MySQL的總和表示爲小數類型

個個都是十進制(10,2)型。我的查詢是

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


我得到的結果是
tax_tourn = 10784.40
這是不正確的


2090.00 + 83.60 + 0.00 = 2173.60

爲什麼mysql顯示錯誤的答案?


細節最新添加
我有兩個表sales和sales_details。 sales_id是銷售主鍵,sales_details_id是sales_details的主鍵。
sales_id是sales_details中的外鍵。
sales_details中的sales_id可以有多行。

但在我們的案例中(sales_id = 12)只有一行。

+1

您不需要單個行的SUM聚合函數。 – 2010-12-15 05:08:25

+1

檢查有多少行與'sales_id' = 12相對應,我懷疑是多行,如果是的話,那麼你需要再增加一個工作表 – gmhk 2010-12-15 05:16:42

+0

我根據你的意見給我的問題添加了新的細節 – praveenmon 2010-12-15 05:45:38

回答

0

如果此代碼返回多於1作爲答案,您有超過1行匹配您的where子句。

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

這聽起來像你有不止一行,其中sales_id =12

+0

+1爲了實現這一點。你應該增加這個答案來解決OP對'SUM'聚合函數的使用。 – Asaph 2010-12-15 05:18:34

+0

我檢查過,只有一行sales_id = 12 – praveenmon 2010-12-15 05:37:29

+0

Asaph,我不明白你在說什麼。我對mysql很陌生。你能舉個例子嗎? – praveenmon 2010-12-15 05:48:28