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