この例は、新しいレコードの開始日に基づいて前のレコードを更新するだけの場合よりも少し面倒です。私はあなたが助けてくれることを望んでいました。前の行の開始日と終了日の更新
ID 1000(多くのIDがあり、パーティション化する必要がありますか?)は、最初の開始日があります。
IDは別の契約にリンクされます。したがって、第1契約の終了日は、第2契約の開始日です。 2番目の契約は、将来の日付である場合とそうでない場合があります。
ただし、2番目の契約が開始される前に別の契約にリンクされている可能性があります。したがって、2番目の契約は無効となります。 3番目の契約が今すぐ優先され、最初の契約の終了日を3番目の契約の開始日に変更する必要があります。 2番目の契約は開始日と終了日が同じであることを示しています。
T-SQLを使用してこれを達成する方法についてのアイデアはありますか?
id contract Start Date End Date
1000 1 2017/08/31 9999/12/31
id contract Start Date End Date
1000 1 2017/08/31 2017/09/16
1000 2 2017/09/16 9999/12/31
id contract Start Date End Date
1000 1 2017/08/31 2017/09/14
1000 2 2017/09/16 2017/09/16
1000 3 2017/09/14 9999/12/31
ありがとうございます。
種類
D
SQL Serverののバージョンは? – scsimon
こんにちは、Scsimon、それはSQL 2014です。 – user3497385