Представьте себе рабочий процесс для ввода данных.Приходят некоторые формы, они вводятся в систему, проверяются и, надеюсь, утверждаются.Однако они могут быть отклонены менеджером и должны быть введены снова.
Таким образом, идеальный рабочий процесс будет выглядеть следующим образом:
получено> введено> утверждено
Но это МОЖЕТ произойти:
получено> введено> отклонено> введено> отклонено> одобрено
На каждом этапе мы записываем, кто обновил форму до ее текущего статуса - кто ввел ее, кто отклонил ееили кто это одобрил.Таким образом, таблица состояния форм выглядит следующим образом:
form_id status updated_by updated_at
1 received Bob (timestamp)
1 entered Bob (timestamp)
1 approved Susan (timestamp)
2 received Bob (timestamp)
2 entered Bob (timestamp)
2 rejected Susan (timestamp)
2 entered Carla (timestamp)
2 rejected Susan (timestamp)
2 entered Sam (timestamp)
2 approved Susan (timestamp)
Вот что я пытаюсь сделать: написать отчет об отказе.Мне нужна строка для каждого отклонения, и я присоединился к этой строке: Я хочу посмотреть, кто сделал работу, которая была отклонена .
Как человек, я могу видеть, что для данной строки состояния со статусом «отклонено» строка, которая скажет мне, кто совершил неисправную работу, будет
- использует тот же form_id, а
- имеет предыдущую временную метку, ближайшую к отклонению.
Но у меня возникают проблемы с сообщением MySQL об этом.
Кто-нибудь может увидеть, как построить этот запрос?