SQL是否通过匹配日期范围来选择值?

SQL是否通过匹配日期范围来选择值?,sql,date,range,Sql,Date,Range,我有一个带有日期范围的时间表表和部门表,希望将正确的部门附加到每个时间表条目 Timesheet Department ---------------------- -------------------------------------- Name |Date |Hours Name |From |To |Dept ----------------------

我有一个带有日期范围的时间表表和部门表,希望将正确的部门附加到每个时间表条目

Timesheet                        Department
----------------------           --------------------------------------
Name  |Date     |Hours           Name   |From     |To        |Dept
----------------------           --------------------------------------
Joe   |6/1/2012 | 4              Joe    |5/1/2012 |7/31/2012 |West
Joe   |7/8/2012 | 2              Joe    |8/1/2012 |1/1/2099  |East
Joe   |8/4/2012 | 8
在查询时间表数据时,我需要所附时间表当天的正确部门。查询应输出以下内容:

Joe   |6/1/2012 | 4 |West
Joe   |7/8/2012 | 2 |West
Joe   |8/4/2012 | 8 |East

我很难弄清楚如何将这些不同的数据集连接起来以实现我的目标。如果我没有可以加入的确切匹配日期,但只有一个日期范围,如何为每个时间表条目选择正确的Dept值?

我希望您实际上有一个表的主键,并且不必在名称上加入。哇,这很快,效果很好。谢谢!很抱歉我是个新手;-)
SELECT
    t.Name,
    t.[Date],
    t.Hours,
    d.Dept
FROM
    Timesheet t
    JOIN Department d
        ON t.Name = d.Name
        AND t.[Date] BETWEEN d.[From] AND d.To