次のようなデータがあります
。データはプロセス ID 順、次にステップ開始日順に並べられています。
ステップの開始日によって、ステップの順序が決まります。各ステップは承認者によって承認されます (以下の承認者 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 ║
╚═══════════╩══════════════════════════╩═══════════════╩════════════╝
2 つ以上の連続したステップで同じ ApproverID を持つプロセスの [ProcessID] を返す TSQL クエリが必要です。
上記の例では、承認者 B がステップ 2 と 3 を (連続して) 承認したため、ProcessID #1 が返されます。承認者 B がステップ 2 と 4 を承認したにもかかわらず、それらが連続していなかったため、ProcessID #2 は返されません。
スキーマのセットアップといくつかのサンプル データを使用した SQL フィドルを次に示します。SQL フィドル
どんな助けでも大歓迎です!