我必须为报告创建一个MySQL查询。MySQL报告 - 订单历史记录
我有一个表history
,它记录了产品订单的状态变化。对于订单的生命周期(订单流),我有这些状态:新的,确认的,处理,装运,交付,取消,退回。订单不一定会遵循此状态流程,例如:新订单可以立即取消,也可以在处理中取消。这使得准确的报告更加复杂。
现在,我要制作已确认,处理,装运并交付的订单的供应链报表。但是这份报告应该排除在任何阶段被取消或返回的订单。
考虑这个例子:
的命令(ID:34)置于由客户。初始状态:新建。由代理确认,状态设置为已确认。供应链经理验证可用性,状态更改为处理,然后发货,然后交付。
另一个订单(id:55)出现,新的,确认,处理但取消。 history
样子:
id order_id status
111 34 new
112 34 confirmed
113 55 new
114 55 confirmed
115 55 processing
116 34 processing
117 55 cancelled
118 34 shipped
119 34 delivered
如何使报表查询得到的只有那些订单这是
- 证实,加工,运输和交付。
- 确认,处理,取消。
- 确认,取消
- 等等...
我如何编写一个查询得到这些类型的报告?
太好了。如果我还把时间放在WHERE条款中呢?像't3.date_added> t2.date_added和t2.date_added> t1.date_added'。意思是,一个订单是第一个新的,然后设置为流程,然后交付。这样我就可以对状态流进行排序......对吗? –
你可以做到这一点。如果答案有帮助,不要忘记接受它。谢谢。 –