根据主订单号 group by,子订单号跨天的数据进行 order by
问题:子订单跨天有可能不被统计到的问题
解决问题:以实现支付的时间为准
关键代码:(select * from crm_customer_order order by pay_time desc limit 100 ) co
limit 100 大小可以根据业务需要,调大
SQL
select co.name, co.leader_id, co.main_order_no, co.pay_time, co.create_time,
sum(co.order_amount) as order_amount, u.dept_id, d.name as dept_name
from (select * from crm_customer_order order by pay_time desc limit 100 ) co
left join sys_user u on co.leader_id = u.id
left join sys_dept d on u.dept_id = d.id
WHERE co.delete_flag = 0 AND co.order_status = 1 and co.order_paid_amount > 0
and co.pay_time is not null and co.main_order_no != ''
group by co.main_order_no
order by co.pay_time desc
limit 0, 20
这篇博客讨论了一个SQL查询,该查询旨在解决子订单跨天可能导致的统计遗漏问题。它通过以支付时间为标准来确保所有子订单都被正确统计。查询首先按支付时间降序选取了100条记录,然后通过LEFT JOIN连接用户和部门信息,并对主订单号进行分组,以支付时间降序排序。最后,筛选出未删除、状态为1且已支付的订单,输出相关字段,并限制返回结果的数量为20。
1348

被折叠的 条评论
为什么被折叠?



