SQL状态查找符合特定日期条件的记录

时间:2017-07-24 01:17:16

标签: sql vba ado

我在VBA中使用ADO SQL来尝试并需要以下示例的解决方案:

ID   Effective Date of Documentation
1    1/1/2015
2    6/1/2015
3    1/1/2016
4    6/1/2016

在上面的示例中,ID 1的文档从2015年1月1日到2015年5月31日生效,ID 2从2015年6月1日到2015年12月31日生效,因此向前。因此,如果我的日期是8/1/2015,那么我需要返回文档生效的记录。因此,在此示例中,将返回ID 2的记录。我需要一些SQL来实现这一点,我无法弄清楚如何!有任何想法吗?这可能与此结构有关,还是我需要首先为结束日期创建一些人工列并查询?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

select t.*
from table t
where effdate < @date
order by effdate desc
fetch first 1 row only;

这是SQL标准语法。不同的数据库可能有不同的语法来选择一行。

编辑:

在MS Access中,您可以:

select TOP 1 t.*
from t
where effdate < @date
order by effdate desc;