У меня есть следующие результаты, где я добавил дополнительный столбец для ExpectedResult.
Я не уверен, как заставить это работать, где значение DateFrom должно сравниваться со следующим значением DateFrom до последней строки в этой категории, где оно должно сравниваться со значением DateTo. DateTo также может быть NULL, где он должен сравниваться с getdate () в этом случае.
У кого-нибудь есть идеи, как этого достичь?

Для категории 1, сравнение выполняется с 2019-03-01 по 2019-03-08, затем с 2019-03-08 по 2019-03-11 и, наконец, с 2019-03-11 по 2019-03 -14, а затем сбрасывает для следующей категории.
Пример данных:
Create Table #TestData
(
ID int,
Category int,
DateFrom datetime,
DateTo datetime NULL,
ExpectedResult int
)
insert into #TestData
(
ID,
Category,
DateFrom,
DateTo,
ExpectedResult
)
select
1,
1,
'01 Mar 2019',
'06 Mar 2019',
7
union all
select
2,
1,
'08 Mar 2019',
'09 Mar 2019',
3
union all
select
3,
1,
'11 Mar 2019',
'14 Mar 2019',
3
union all
select
1,
2,
'04 Mar 2019',
'07 Mar 2019',
4
union all
select
2,
2,
'08 Mar 2019',
'15 Mar 2019',
10
union all
select
3,
2,
'18 Mar 2019',
'24 Mar 2019',
6
select * from #TestData
drop table #TestData