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