У меня есть таблица с действиями, которые сотрудники выполняют во время транзакции с клиентом. Существует определенный процесс, которому они всегда должны следовать при выполнении транзакции.
Я пытаюсь выяснить, как зафиксировать начало транзакции, когда сотрудник не выполнил надлежащие шаги.
Процесс всегда должен начинаться с Action_Taken = 1, заканчиватьсяAction_Taken = 3, но между этими двумя должен быть третий (или более) Action_Taken (этот Action_taken может равняться любому числу, но никогда не может быть 1 или 3 снова). Проблема возникает, когда отсутствует среднее действие, и это то, что я пытаюсь захватить.
Например:
Date_time Employee Action_Taken Client
2019-10-01 01:21:08.000 1 1 73
2019-10-01 01:30:50.000 1 2 73
2019-10-01 01:46:21.000 1 4 73
2019-10-01 01:52:41.000 1 3 73
2019-10-03 03:24:40.000 2 1 61
2019-10-03 03:53:28.000 2 3 61
2019-10-03 04:29:15.000 2 2 61
2019-10-01 11:43:55.000 3 1 54
2019-10-01 11:47:54.000 3 2 54
2019-10-01 11:52:00.000 3 3 54
2019-10-02 05:36:27.000 1 1 76
2019-10-02 05:59:00.000 1 3 76
2019-10-03 06:18:00.000 2 1 67
2019-10-03 06:25:56.000 2 2 67
2019-10-03 06:34:34.000 2 3 67
Я ожидаю получить этот вывод, который представляет собой строки 5 и 11:
Date_time Employee Action_Taken Client
2019-10-03 03:24:40.000 2 1 61
2019-10-01 01:21:08.000 1 1 73
Вот что я уже пробовал:
select *, concat(convert(date, date_time), Employee, client) AS actionkey
into #Trans_Start
from #Table
where Action_Taken = 1
select *,concat(convert(date, date_time), Employee, client) AS actionkey
into #Trans_Actions
from #test
where Action_Taken = 2
select *
from #Trans_Start as start
where start.actionkey not in (select act.actionkey from #Trans_actions as act where act.actionkey = start.actionkey)
Это близко к тому, что мне нужно, и выводит только одну строку:
Date_time Employee Action_Taken Client
2019-10-01 01:21:08.000 1 1 73
Я знаю, что эта строка выводится только из-за того, как определен мой ключ действия. Это отсутствует, потому что Сотрудник 2 закончил тем, что сделал действие, но это было с неправильной последовательностью (Они исправили свою ошибку и попытались исправить это).
Я просто не могу понять, как записать транзакцию в таблицу, если они закончили публикацию действия из правильной последовательности.
Любая помощь будет оценена, это может бытьсовершенно другой подход, чем тот, который я выбрал.