问题描述
create
table #student_test ( studentid
int ,
test_date datetime )
createtable #student_test(studentidint, test_date datetime)
插入
into #student_test
值 ( 1 ,
'1/1/2018 ' ),
第一测试     &NBSP ; 中间测试
Student id first test in-between test
1                 &NBSP ;
1/1/2018 2/1/2018
1 1/1/2018 2/1/2018
1                 &NBSP ;
1/1/2018 3/1/2018
1 1/1/2018 3/1/2018
1                 &NBSP ;
1/1/2018 11/1/2018
1 1/1/2018 11/1/2018
1                 &NBSP ;
12/15/2018 1/1/2019
1 12/15/2018 1/1/2019
1                 &NBSP ;
12/15/2018 2/1/2019
1 12/15/2018 2/1/2019
1                 &NBSP ;
12/15/2018 3/1/2019
1 12/15/2018 3/1/2019
id为2的学生不应该在结果中,因为没有中间测试。
谢谢
推荐答案
从#student_test st $ $ b中选择st.studentid,st.test_date,sty.year
$ b内连接#student_test_year sty on st.studentid = sty.studentid
其中st.test_date> sty.first_test和st.test_date< sty.last_test
select st.studentid, st.test_date, sty.year
from #student_test st
inner join #student_test_year sty on st.studentid = sty.studentid
where st.test_date > sty.first_test and st.test_date < sty.last_test
任何更有效的查询?
TIA
这篇关于在日期之间查找的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!