实际开发中遇到的问题
1.销售订单,销售订单明细表中的综合总价不一致问题?
最近发现极少数部分的销售订单存在上述问题,最终找了很久才发现是因为主表中的综合总价方式是用(单价乘以数量)乘以(1+安装费率)乘以等相关费率得到,而销售订单明细表中则由综合单价成数量,而综合单价的计算方式同样用单价乘(1+安装费率)乘以等相关费率得到,然后系统的保留位数是两位,则这里就会造成综合单价精度严重丢失,看似对应一个数量只有厘,但是如果数量达到上千就会高达几十金额差距,这个问题不容易被发现。
2.批量更新两表sql语句,有两张表uf_xsxdht 销售订单主表,uf_xsxdht_dt1 销售订单明细表,想要保持销售订单主表中的合同总金额(htzje)与 销售订单明细表中综合总价(zhzj)和的值保持一致?
a.可以首先查找出对应的语句,看出大致有多少条差异
SELECT aa.id,aa.htzje ,bb.totalMoney FROM uf_xsxdht aa left join
(SELECT sum(a.zhzj) totalMoney, a.mainid as mainid FROM uf_xsxdht_dt1 a
WHERE a.mainid is not null GROUP BY a.mainid) bb on aa.id = bb.mainid
b.执行update语句
UPDATE uf_xsxdht aa left join
(SELECT sum(a.zhzj) totalMoney, a.mainid as mainid FROM uf_xsxdht_dt1 a
WHERE a.mainid is not null GROUP BY a.mainid) bb on aa.id = bb.mainid
SET aa.htzje = bb.totalMoney
WHERE bb.mainid is not null
自己的sql语句运用不够灵活,我最初想法是查出所有主表id,然后for循环来替换,需要写代码完成,后面发现并不需要。