我有一张表格,其中包含从现在到2015年的日期列表。 例如。
Date
11/1/2013
12/1/2013
13/1/2013
...
25/1/2013
我有一个单独的表,它保存报告日期。
cutoff_ date purpose
11/1/2013 Mid Month Report
25/1/2013 Month End Report
所以我需要在2013年11月1日至2013年1月25日之间分配一个至2013年1月25日的最新方式吗?
我可以在简单的SQL查询中执行此操作吗? 如果存在差异,则数据库当前处于Access状态
答案 0 :(得分:1)
使用DMin
检索大于或等于 [Date] 的最小 cutoff_date 。
SELECT
[Date],
DMin("cutoff_date", "report_dates",
"[cutoff_date] >= " & Format([Date], "\#yyyy-m-d\#")) AS report_date
FROM first_table;
答案 1 :(得分:0)
使用子查询可能有好处,例如,您可以使用一个参数,该参数可以在代码中分配,从表单中获取,或者只是输入。此示例仅选择那些日期与之匹配的记录。 cutoff_date目的在提示[please enter purpose]
中输入。
SELECT DISTINCT dates.day,
(SELECT TOP 1 cutoff_date
FROM report_dates
WHERE cutoff_date >= dates.day
AND purpose = [please enter purpose]
ORDER BY cutoff_date) AS CutOff
FROM dates
WHERE (SELECT TOP 1 cutoff_date
FROM report_dates
WHERE cutoff_date >= dates.day
AND purpose = [please enter purpose]
ORDER BY cutoff_date) IS NOT NULL;