MySQL SUM function results in solutions of up to 13 decimals!
sql statement:
(SELECT SUM(O_G.GOODS_AMOUNT) as
AMOUNT_SUM,SUM(o_g.goods_cost*o_g.goods_number) as
cost_sum,sum(o_g.goods_number) as number_sum
from ERP_ORDER_GOODS AS O_G
left outer join erp_order as o on o_g.order_id = o.order_id
left outer join erp_goods as g on g.gid = o_g.goods_id
left outer join erp_brand as b on b.brand_id = g.brand_id where
(o.add_time between “1389715200” and “1389772885”) and (o.order_status=1 or
o.order_status=2)) union all
(SELECT SUM(O_A_G.GOODS_CHANGE_AMOUNT) as
AMOUNT_SUM,SUM(O_A_G.GOODS_COST*O_A_G.GOODS_CHANGE_NUMBER) as
cost_sum,sum(o_a_g.goods_change_number) as number_sum
from erp_order_after_goods as o_a_g
left outer join ERP_order_after as o_a on o_a_g.order_after_id = o_a.order_after_id
left outer join erp_goods as g on g.gid = o_a_g.goods_id
left outer join erp_brand as b on b.brand_id = g.brand_id where
(o_a.add_time ween “1389715200” and “1389772885”))
Solution:
Modify the field type of O_A_G.GOODS_CHANGE_AMOUNT from float(10,2) to decimal(10,2)

