SQL Server:过滤另一个表的日期

时间:2014-02-11 16:03:56

标签: sql sql-server

我是SQL Server的新手,所以这可能是一个非常简单的问题

我有一个如下所示的日志表视图:

enter image description here

一个记录运行开始和停止的表,如下所示:

enter image description here

我想在第二个表中的开始和停止时间之间过滤第一个表中的数据。有没有办法做到这一点?

1 个答案:

答案 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