Оконные функции MYSQL - PullRequest
0 голосов
/ 25 июня 2018

заказ имеет несколько статусов заказа до его окончательной доставки клиенту. Иногда клиент размещает несколько заказов из разных источников. Мы принимаем один заказ, но мы отклоняем другой заказ. Я хочу узнать, какой был последний статус заказа принятого заказа, когда дубликат заказа был отменен.

LEFT JOIN(
            SELECT order_id AS order_id,order_status,max(addtime(`timestamp`,'05:30:00')) AS timestamp
            FROM pe2.order_history
            GROUP BY 1,2
) oh ON oh.order_id = ord.order_id AND oh.timestamp <= c.time. 
c.time. is duplicate order cancellation time.

1 Ответ

0 голосов
/ 25 июня 2018

Мы получаем заказ желаемого клиента, затем мы получаем последний статус для того же заказа, что до отмены дублирующего заказа:

SELECT order.*,
(SELECT order_status FROM order_history AS oh 
WHERE order_id = order.id AND timestamp <= cancel_time
ORDER BY timestamp DESC LIMIT 1) AS last_status
FROM order
WHERE order.ID = accepted_order
...