2017-04-01から2017-04-30までの範囲に、このテーブルのデータを入力する必要があります。私はこのような結果を取得する必要があります下の優先順位実際にSQL Server:優先順位が重複している日付の範囲を入力してください
id startValidity endValidity priority
-------------------------------------------
1004 2017-04-03 2017-04-30 1
1005 2017-04-10 2017-04-22 2
1010 2017-04-19 2017-04-23 3
1006 2017-04-24 2017-04-28 2
1008 2017-04-26 2017-04-28 3
持つもの:
id startValidity endValidity priority
--------------------------------------------
1004 2017-04-03 2017-04-09 1
1005 2017-04-10 2017-04-18 2
1010 2017-04-19 2017-04-23 3
1006 2017-04-24 2017-04-25 2
1008 2017-04-26 2017-04-28 3
1004 2017-04-29 2017-04-30 1
あなたが達成しようとしているものについての例を挙げて、より良いあなたの質問を教えてください、差分サンプルデータでこれを試してみてください! – Tarun
最初のレコードセットは、エンティティに関連するカレンダーと親エンティティのカレンダーを結合した結果です。 各レコードに有効期間があり、連続した有効期間(重複なし)のある特定の期間(つまり2017-04-01から2017-04-30まで)の有効なカレンダーをすべて取得する必要があります。ただし、 は、優先順位の高いカレンダーは優先順位の低いカレンダーよりも優先しなければなりません – Andypat
出力レコードの数が入力レコードの数よりも大きくなる可能性があるため、これを単一の照会で解決することはできません。当然のことながら、それは再帰的に解決されます(「フレーミング」や「カバー」など)。個人的には、可能であれば、より高いレベルのプログラミング言語(C++、Java、C#など)で記述します。 –