SELECT Processname, Firstdate, Count(*) as numrows FROM @processrows A CROSS APPLY (SELECT MIN(B.Processdate) as firstdate FROM @ProcessRows B LEFT JOIN @ProcessRows C ON C.ProcessNAme <> B.ProcessName AND C.ProcessDate BETWEEN B.ProcessDate AND A.Processdate WHERE B.ProcessName = A.Processname AND B.Processdate <= A.Processdate AND C.ProcessDate IS NULL ) as x GROUP BY ProcessName, FirstdateWalter,
>declare @ProcessRows table (ProcessDate Date, ProcessName varchar(50)) > >insert into @ProcessRows values ('10/1/2017', 'Process A') >insert into @ProcessRows values ('10/2/2017', 'Process A') >insert into @ProcessRows values ('10/3/2017', 'Process A') > >insert into @ProcessRows values ('10/4/2017', 'Process B') >insert into @ProcessRows values ('10/5/2017', 'Process B') >insert into @ProcessRows values ('10/6/2017', 'Process B') >insert into @ProcessRows values ('10/7/2017', 'Process B') > >insert into @ProcessRows values ('10/8/2017', 'Process C') > >insert into @ProcessRows values ('10/9/2017', 'Process A') >insert into @ProcessRows values ('10/10/2017', 'Process A') >insert into @ProcessRows values ('10/11/2017', 'Process A') > >insert into @ProcessRows values ('10/12/2017', 'Process D') >insert into @ProcessRows values ('10/13/2017', 'Process D') > >insert into @ProcessRows values ('10/14/2017', 'Process A') >insert into @ProcessRows values ('10/15/2017', 'Process A') > >insert into @ProcessRows values ('10/16/2017', 'Process D') >>