У меня есть приложение, которое записывает и обрабатывает заказы на продукцию.С момента первоначального создания заказа до его окончательной отправки на исполнение 1 или более его свойств могут быть изменены 1 или более раз одним или несколькими сотрудниками на этом пути.Я храню номера заказов и сотрудников, которые начали заказы в 1 таблице, а затем все изменения всех заказов (включая начальные данные) в другой таблице.Примерно так:
Заказы
ORDER_ID EMPLOYEE
1 dan
2 dan
3 fred
Order_Activity
ACTIVITY_ID ORDER_ID UPDATER DATE QTY SIZE COLOR STATUS
1 1 dan 1/1/2017 5 m red new
2 1 dan 1/3/2017 15 m red updated
3 1 tom 1/9/2017 15 l red submitted
4 2 dan 1/1/2017 25 l blue new
5 2 tom 1/1/2017 25 l blue submitted
6 3 fred 1/9/2017 15 s red new
7 3 fred 1/10/2017 5 l red updated
8 3 fred 1/11/2017 5 m red updated
9 3 tom 1/11/2017 5 m red submitted
Мне нужно отобразить 2 самых последнихзаказы с сотрудником, который инициировал заказ, а также свойства заказов (кол-во, размер и цвет), какими они были при изменении статуса на «отправлено».
Если мне нужно только ONE порядок (самый последний), я думаю, я мог бы использовать:
SELECT
Orders.EMPLOYEE,
Order_Activity.QTY,
Order_Activity.SIZE,
Order_Activity.COLOR FROM Orders
INNER JOIN Order_Activity
ON Orders.ORDER_ID = Order_Activity.ORDER_ID
ORDER BY Order_Activity.date DESC LIMIT 1
Однако мне трудно представить, как найти следующую запись с другим значением для ORDER_ID
, сохраняя все этов одном запросе.
Может ли кто-нибудь помочь мне с запросом, чтобы получить что-то вроде этого (на основе данных, представленных выше):
ORDER_ID EMPLOYEE QTY SIZE COLOR
3 fred 5 m red
1 dan 15 l red
или не может это сделать в 1запрос