我必须为报告创建一个 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
如何进行报告查询以仅获取那些
- 确认、处理、发货和交付。
- 确认、处理、取消。
- 确认,取消
- 等等...
如何编写查询以获取此类报告?