繁体   English   中英

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

[英]SQL Selecting value by matching date to date range?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM