我是SQL Server的新手,所以这可能是一个非常简单的问题
我有一个如下所示的日志表视图:
一个记录运行开始和停止的表,如下所示:
我想在第二个表中的开始和停止时间之间过滤第一个表中的数据。有没有办法做到这一点?
答案 0 :(得分:1)
您可以使用常规join
来匹配日期范围:
select *
from Entries e
join Runs r
on r.StartTime <= e.EntryTime
and (
e.EntryTime <= r.StopTime
or r.StopTime is null -- For a run that has not yet stopped
)
但是您的示例数据表明存在外键,这将消除日期范围匹配的需要:
select *
from Entries e
join Runs r
on e.ProjectRunId = r.ProjectRunId