我有一个时间表表和一个包含日期范围的部门表,并希望将正确的部门附加到每个时间表条目。
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值?
答案 0 :(得分:3)
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