本文介绍了在日期之间查找的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


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


这篇关于在日期之间查找的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 00:46