gpt4 book ai didi

MySQL 报告 - 订单历史记录

转载 作者:行者123 更新时间:2023-11-29 14:10:00 28 4
gpt4 key购买 nike

我必须为报告创建 MySQL 查询。

我有一个表history,它记录产品订单的状态更改。我有订单生命周期(订单流程)的以下状态:新、已确认、正在处理、已发货、已交付、已取消、已退回。订单不一定遵循此状态流程,例如:新订单可以立即取消,也可以在处理过程中取消。这使得准确的报告变得更加复杂。

现在我想制作一份已确认、处理、发货和交付的订单的供应链报告。但此报告应排除在任何阶段取消或退回的订单。

考虑这个例子:

客户下了订单(id:34)。初始状态:新。由代理确认,状态设置为已确认。供应链经理验证可用性、处理状态更改,然后发货,然后交付。

另一个订单(id:55)来了,新的,已确认,正在处理,但已取消。 历史看起来像:

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

如何进行报告查询以仅获取那些订单

  1. 确认、处理、发货和交付。
  2. 已确认、已处理、已取消。
  3. 已确认,已取消
  4. 等等...

如何编写查询来获取这些类型的报告?

最佳答案

对于新订单:从历史记录中选择不同的(order_id),其中状态=新对于新处理的:从历史记录中选择不同的(order_id),其中状态=已处理 等等

对于新订单、已处理并已交付的订单

从历史记录中选择 t1.order_id 作为 t1,历史记录作为 t2,历史记录作为 t3,其中 t1.order_id=t2.order_id 且 t2.order_id=t3.order_id 且 t1.status=new 且 t2.status = 已处理和 t3。状态=已交付

像这样为其他人继续下去

关于MySQL 报告 - 订单历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com