MySql----根据主订单号 group by,子订单号跨天的数据进行 order by

这篇博客讨论了一个SQL查询,该查询旨在解决子订单跨天可能导致的统计遗漏问题。它通过以支付时间为标准来确保所有子订单都被正确统计。查询首先按支付时间降序选取了100条记录,然后通过LEFT JOIN连接用户和部门信息,并对主订单号进行分组,以支付时间降序排序。最后,筛选出未删除、状态为1且已支付的订单,输出相关字段,并限制返回结果的数量为20。

根据主订单号 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值