将日期范围分成单个记录,保留ID

Ana*_*his 1 sql vba date range ms-access-2010

我正在使用Access 2010数据库,该数据库具有一个表,其中的关联名称与员工请求的日期范围相关,格式如下:

DateRanges

 Name--| StartDate | EndDate  
 Joe---| 12/20/13  | 12/22/13   
 Sue---| 12/24/13  | 12/26/13  
 Guy---| 12/30/13  | 01/02/14
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行一个查询,将更改数据以使每个日期具有单独的记录,但也为每个记录保留适当的名称.像这样:

Separated

Name -- DatesOff  
Joe ----- 12/20/13   
Joe ----- 12/21/13   
Joe ----- 12/22/13   
Sue ----- 12/24/13   
Sue ----- 12/26/13   
Guy ----- 12/30/13   
................   
Guy ----- 01/02/13
Run Code Online (Sandbox Code Playgroud)

我在这里看到了一些关于拆分日期范围的不同示例,但没有带来员工姓名/ ID.有任何想法吗?我愿意使用SQL或VBA来完成它.

小智 5

您可以创建一个包含每一天的表,并将其连接到您的DateRanges表,如下所示:

SELECT
   dr.Name,
   d.DateValue AS DatesOff
FROM
   Days d
INNER JOIN
   DateRanges dr
   ON (d.DateValue BETWEEN dr.StartDate AND dr.EndDate)
Run Code Online (Sandbox Code Playgroud)