私はいくつかの行の日付を比較する必要がある問題があります。要件は、前回の 'EndDate'と次の 'StartDate'の間に1日以上のギャップがない限り、データを 'StartDate'と最高 'EndDate'が最も低い 'Region/Area'の組み合わせでグループ化する必要があります。SQL 2012いくつかの行の日付を比較する
「StartDate」は常に最初の月で、「EndDate」は常にその月の最終日になります。私はMINとのGROUP BYを試してみましたし、MAXは、日付が、私はように見えることはできません
Region | Area | StartDate | EndDate
-------|------|--------------|-----------
A | 1 | 01/01/2016 | 05/31/2016
A | 1 | 07/01/2016 | 12/31/2017
B | 2 | 01/01/2016 | 09/30/2016
A | 4 | 01/01/2016 | 12/31/2016
:私はこのような何かを見て、結果を必要
Region | Area | StartDate | EndDate
-------|------|---------------|-------------
A | 1 | 01/01/2016 | 03/31/2016
A | 1 | 04/01/2016 | 05/31/2016
A | 1 | 07/01/2016 | 09/30/2016
A | 1 | 10/01/2016 | 01/31/2017
A | 1 | 02/01/2017 | 12/31/2017
B | 2 | 01/01/2016 | 04/30/2016
B | 2 | 05/01/2016 | 09/30/2016
A | 4 | 01/01/2016 | 05/31/2016
A | 4 | 06/01/2016 | 12/31/2016
:
は、次のような単純化されたテーブルを考えますそれの論理を正しいものにしてください。
ご意見やご提案をいただければ幸いです。
おかげで、私はちょうど@JeffMartinez心配一緒 –
をそれらを取得しないように見えることができなかった部分があったが、あまり、それがために働い嬉しいあなたは –
一つ質問をフォローアップ - 第三日付列があった場合には、たとえば'ChangeDate'、各グループごとにMAX値が必要です。どのようにそれを含める?私が試してみると結果が増え続けます –