我的数据如下所示:
数据按 processID 排序,然后按开始日期排序。
步骤开始日期决定步骤的顺序。每个步骤都由批准人批准(下面的批准人 ID 是任意的)
╔═══════════╦══════════════════════════╦═══════════════╦════════════╗
║ 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 查询,该查询将为在 2 个或多个连续步骤中具有相同 ApproverID 的任何进程返回 [ProcessID]。
因此,在上面的示例中,将返回 ProcessID #1,因为审批者 B 批准了步骤 2 和 3(连续)。ProcessID #2 不会返回,因为即使审批者 B 批准了步骤 2 和 4,它们也不连续。
这是一个带有架构设置和一些示例数据的 SQL fiddle:SQL Fiddle
任何帮助将不胜感激!