如何在MS Access中编写此SQL查询
我有一个这样的记录列表如何在MS Access中编写此SQL查询,sql,vba,ms-access,Sql,Vba,Ms Access,我有一个这样的记录列表 ID---EffectiveDate---Rate 1----1/1/2011--------1.2 2----1/1/2012--------1.3 3----1/1/2013--------1.5 4----1/1/2014--------1.2 给定一个日期参数d1,我想得到d1之前的最新生效日期的记录。因此,如果d1=6/1/2012,我想获得第二条记录。如何在MS Access SQL中编写这样的查询?根据您的数据,我认为SQL查询应该是这样的: SELECT
ID---EffectiveDate---Rate
1----1/1/2011--------1.2
2----1/1/2012--------1.3
3----1/1/2013--------1.5
4----1/1/2014--------1.2
给定一个日期参数d1,我想得到d1之前的最新生效日期的记录。因此,如果d1=6/1/2012,我想获得第二条记录。如何在MS Access SQL中编写这样的查询?根据您的数据,我认为SQL查询应该是这样的:
SELECT TOP 1 EffectiveDate
FROM MyTableOfDates
WHERE EffectiveDate <= #MyInputDate#
ORDER BY EffectiveDate DESC
选择前1个生效日期
从我的日期表
如果EffectiveDate试试这个
select top 1 * from tablename where EffectiveDate<=d1 order by EffectiveDate desc
从tablename中选择top 1*,其中EffectiveDateORDER BY EffectiveDate DESC
Jeez这很简单。我觉得自己很傻,因为我自己没有想到这一点,哈哈。谢谢是的,误读了。编辑答案以反映@HansUp的更正。如果生效日期的模式如示例数据所示非常严格,为什么不使用其中年份(生效日期)=年份(d1)
?