1

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

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

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

4

1 回答 1

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
于 2012-09-06T19:41:43.437 回答