Posting this since I've already written it
π
Is this what you are looking for?
If(OBJECT_ID('tempdb..#temp123') Is Not Null)
Begin
Drop Table #Temp123
End
Create Table #temp123 (
C_SS_KEY nvarchar(13)
,DS_Start_date Datetime2
,DS_End_Date datetime2
,CTNumber nvarchar(7)
)
insert into #temp123 values('614-P085199-P', '2017-07-28 16:15:15.0000000','2017-09-19 23:00:05.0000000','P085199')
insert into #temp123 values('614-P085199-P', '2017-09-19 23:00:05.0000000','2018-02-12 19:00:48.6300000','P085199')
insert into #temp123 values('614-P085199-P', '2018-02-12 19:00:48.6300000','2018-02-15 19:00:48.6300000','P085199')
;WITH BASE_DATA AS
(
SELECT
T.C_SS_KEY
,T.DS_Start_date
,T.DS_End_Date
,T.CTNumber
,MONTH(T.DS_End_Date) AS MONTH_NO
FROM #Temp123 T
)
SELECT
BD.C_SS_KEY
,MIN(BD.DS_Start_date) AS DS_Start_date
,MAX(BD.DS_End_Date) AS DS_End_Date
,BD.CTNumber
FROM BASE_DATA BD
GROUP BY BD.C_SS_KEY
,BD.CTNumber
,BD.MONTH_NO
;
Output
C_SS_KEY DS_Start_date DS_End_Date CTNumber
------------- --------------------------- --------------------------- --------
614-P085199-P 2017-09-19 23:00:05.0000000 2018-02-15 19:00:48.6300000 P085199
614-P085199-P 2017-07-28 16:15:15.0000000 2017-09-19 23:00:05.0000000 P085199