同じタイプのレコードを連続したシーケンスとマージし、マージされたレコードから完全なシーケンスを計算する際に問題があります。
配列は 100 に達すると 0 にロールオーバーする可能性があるため、ID に基づいて順序付けを行う必要があります。入力/出力の例の最後のエントリを参照してください。
SQL Server 2012 で、以下にリストされている入力と、以下にリストされている出力を生成するクエリを持つことは可能ですか?
入力
Id Type Begin End
-----------------------------
1 1 10 20
2 1 21 23
3 2 24 28
4 1 29 40
5 2 41 47
6 2 48 50
7 2 75 80
8 1 81 100
9 1 0 10
10 1 11 20
11 1 21 5
12 1 5 6
出力
FromId ToId Type Begin End Length
----------------------------------------------------
1 2 1 10 23 13 (23-19)
3 3 2 24 28 4 (28-24)
4 4 1 29 40 11 (40-29)
5 6 2 41 50 9 (50-41)
7 7 2 75 80 5 (80 - 75)
8 12 1 81 20 227*
*(100-81) + 10 + (100-11 + 20) + (100-21 + 5) + 1 -> seq のロールオーバー
編集
ソースの行 6 と 7 は連続していないため、マージされないことに注意してください。行 6 は 50 で終わり、行 7 は 75 で始まります。同じタイプの連続する行のみをマージする必要があります。