У меня есть данные, которые выглядят как:
Данные упорядочиваются по идентификатору processID, а затем по дате начала.
Дата начала шага определяет последовательность шагов. Каждый шаг утвержден утверждающий (утверждающего идентификаторы ниже произвольны)SQL Server - Возвращает наборы с повторяющимися значениями в последовательных записях
╔═══════════╦══════════════════════════╦═══════════════╦════════════╗
║ ProcessID ║ StepName ║Step Start Date║ ApproverID ║
╠═══════════╬══════════════════════════╬═══════════════╬════════════╣
║ 1 ║ Supervisor Approval ║1/1/2013 07:24 ║ A ║
║ 1 ║ Sales Manager Approval ║1/1/2013 13:35 ║ B ║
║ 1 ║ General Manager Approval ║1/3/2013 08:00 ║ B ║
║ 1 ║ CEO Approval ║1/5/2013 14:40 ║ C ║
║ 2 ║ Supervisor Approval ║1/2/2013 07:00 ║ A ║
║ 2 ║ Sales Manager Approval ║1/2/2013 08:00 ║ B ║
║ 2 ║ General Manager Approval ║1/2/2013 09:00 ║ C ║
║ 2 ║ CEO Approval ║1/2/2013 10:00 ║ B ║
╚═══════════╩══════════════════════════╩═══════════════╩════════════╝
мне нужен TSQL запрос, который будет возвращен [ProcessID] 's для любого процесса, который имеет один и тот же ApproverID в 2 или более последовательных шаги.
Таким образом, в приведенном выше примере ProcessID # 1 будет возвращен, так как Approver B одобрил шаги 2 и 3 (последовательно). ProcessID # 2 не будет возвращен, потому что, несмотря на то, что Утвердитель B одобрил шаги 2 и 4, они не были последовательными.
Вот SQL скрипку с настройкой схемы и некоторые выборки данных: SQL Fiddle
Любая помощь будет принята с благодарностью!
Как мы должны знать последовательность для шагов ?? – Lamak
Вы пробовали написать запрос? –
Последовательность шагов уже установлена в приведенном выше наборе результатов. Они были заказаны к дате начала шага. К сожалению, нет числового идентификатора или чего-либо подобного, который сопоставляет имя шага идентификатору последовательности. Может быть включен столбец datetime, который является датой начала шага (каким образом данные в настоящее время упорядочены). –