SQL查询根据结束日期将天数分配给句点

时间:2013-02-20 07:57:28

标签: sql date ms-access

我有一张表格,其中包含从现在到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状态

2 个答案:

答案 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;