mysql sum 默认 精度_mysql sum函数结果出现多达13位小数的解决方案!

a7e4ae3f65eb9086deee56e5149c911a.png

第一次查询结果,小数位有13位!

f965a6edb201759585064c623597cfde.png

解决之后正常查询结果,只有2位!

sql语句:

(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 BETWEEN “1389715200” AND “1389772885”))

解决方案:

将o_a_g.goods_change_amount的字段类型从float(10,2)修改为decimal(10,2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值