创建表testdata
(
ID,
类别int
日期从日期时间开始,
dateto datetime空,
预期结果int
)
插入测试数据
(
身份证件,
类别,
DateFrom
DateTo
预期结果
)
选择
1,
1,
“01英里2019”
“06英里2019”
七
联合所有
选择
2,
1,
“08英里2019”
“09英里2019”
三
联合所有
选择
三,
1,
“11英里2019”
“14英里2019”
三
联合所有
选择
1,
2,
“04英里2019”
“07英里2019”
四
联合所有
选择
2,
2,
“08英里2019”
“15英里2019”
十
联合所有
选择
三,
2,
“18英里2019”
“24英里2019”
六
从测试数据中选择*。
删除表测试数据
< /代码>
有人对如何实现这一目标有什么想法吗?

对于第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