私は完全に解決できないこの問題を抱えています。欠落している数の間隔を取得できますが、それらをつなぎ合わせて連続シリーズに戻すことはできません。
したがって、シリーズが [1000,1001,1002,1003,1005,1006,1008] として定義されている場合、3 つの連続したシリーズ [1000,1001,1002,1003] および [1005,1006] および [1008] を抽出したいと考えています。 . 単純な CTE を使用して 1003、1005、1006、1008 を取得したので、間隔の終了と開始を取得できましたが、ではどうすればよいでしょうか。
最後に、次のようなテーブルが必要です。
|to |from |
|1000 |1003 |
|1005 |1006 |
|1008 |1008 |
共有したいスマートなソリューションを持っている人はいますか?
編集:これは(おそらく冗長な)CTEです:
WITH MissingNumbers (FromNumber, ToNumber) AS
(
SELECT
T1.TaxLabelNumber,
T2.TaxLabelNumber
FROM TaxLabel T1
JOIN TaxLabel T2
ON T1.TaxLabelId + 1 = T2.TaxLabelId
WHERE T1.TaxLabelNumber <> T2.TaxLabelNumber - 1
)
SELECT * INTO #TempNumbers
FROM MissingNumbers
EDIT2:オフ。計画の変更があったので、この種のソリューションはもう必要ありません。にもかかわらず、すべての返信をありがとう! 非常に役に立ちました:D