2016-06-13 193 views
0

我正在MS Access中编写SELECT查询。有一个子表(一对多),其中每个人都有不同的结束日期,如下面的多个记录:MS Access选择与日期最接近的日期记录

Schedule Table 
ID StartTime EndTime AssignmentEndDate 
1 6:00   12:00  01/01/2016 
1 6:00   12:00  06/30/2016 
1 6:00   12:00  01/01/9999 

从记录中,有3个AssignmentEndDate记录。我需要获取Date最接近今天日期的记录,但尚未传递。今天是06/13/2016所以,我需要 以AssignmentEndDate 06/30/2016获取第2条记录。如果今天是2016年7月13日,那将是1999年1月1日的记录。

我不能使用Max()...所以我怎么能写一个SELECT来做到这一点?

感谢

+0

添加你真实目的是试图查询。 –

+0

你的第二个例子使用2016-07-13没有意义。这也应该返回第二行。 –

回答

2

你可以做到这一点是:

select top 1 s.* 
from schedule as s 
where assignmentdate > Date() 
order by assignmentdate asc; 
+1

'Today()'是Jet/Ace/Access函数吗?我认为这会是'Date()' – jleach