0
ある契約番号とサービスコードが重複していない日付が必要な数百万行のテーブルがあります。典型的には2〜4行あり、重複する日付は1つのレコードに結合する必要があります。重複しないレコードは結合しないでください。ギャップは維持する必要があります。SQL Serverで重複する日付範囲を組み合わせる
ContractNumber ServiceCode StartDate EndDate
1111111 AFL 2010-01-01 2010-12-31
1111111 AFL 2011-01-01 2011-12-31
1111111 AFL 2011-04-01 2012-03-31
1111111 AFL 2011-04-01 2012-06-30
1111111 AFL 2013-01-01 2013-12-31
ものがに結合する必要があります:Eliminate and reduce overlapping date ranges:また
ContractNumber ServiceCode StartDate EndDate
1111111 AFL 2010-01-01 2010-12-31 (remains the same)
1111111 AFL 2011-01-01 2012-06-30 (merged)
1111111 AFL 2013-01-01 2013-12-31 (gap maintained)
、私はすでにこの質問を見てきました。それはデータのサブセットの下で動作しましたが、私が持っているすべてのデータでそれを解き放つと、それは本当に遅かったです。私は数百万行のために数分で動くものが必要です。何か案は?
あなたの提案は実際に私の問題を解決するものではありません。データを整理するのが最善の選択だと私は明らかに分かっていますが、ビジネス上の要件は私にそれをさせません。 –
@rwponu:私はあなたに幸運を祈っていますが、私の最善の知識には迅速かつ簡単な解決法はありません。そのような場合にAdam MachanicはCLRを推奨していますが、彼はこの問題を解決するために複雑なC#コードをたくさん書く必要があると言いました。 –