Получите минимальное(eff_start_date) и максимальное(eff_end_date) значение для контракта, основанного на соответствии требованиям

#sql #sql-server #common-table-expression

Вопрос:

Ниже приведен пример моего набора данных, я хочу получить минимальное(eff_start_date) и максимальное(eff_end_date) значение в зависимости от того, когда изменяется значение Fee_Share_Eligibility_flag. Я знаю, что мне нужен CTE, но не уверен, как это сделать.

 Contract_Number Contract_Number_Modifier    Eff_Start_Date  Eff_End_Date    Fee_Share_Eligibility_Flag
CONTRACT1   2010    2/1/2010    9/30/2015   0
CONTRACT1   2010    10/1/2015   6/30/2018   0
CONTRACT1   2010    7/1/2018    12/31/2018  0
CONTRACT1   2010    1/1/2019    1/31/2019   1
CONTRACT1   2010    2/1/2019    6/30/2019   1
CONTRACT1   2010    7/1/2019    7/31/2021   1
CONTRACT1   2010    8/1/2021    12/31/2199  0
 

Ожидаемый конечный результат.

 Contract_Number Contract_Number_Modifier    Eff_Start_Date  Eff_End_Date    Fee_Share_Eligibility_Flag
CONTRACT1   2010    2/1/2010    12/31/2018  0
CONTRACT1   2010    1/1/2019    7/31/2021   1
CONTRACT1   2010    8/1/2021    12/31/2199  0