我真的不知道如何提出这个问题或标题,但我在这里。我在学校系统工作,我为一些心理学家创建了一个数据库,用于跟踪他们的推荐。根据州规定,他们从第一次会议之日起60天内完成流程。周末仍然有效,但假期不要。我真的不知道如何使用我们的日历,以便我们有一个准确的计算。例如,假设占了假期,如果一个孩子今天开始,他将需要在2013年1月18日完成所有工作。根据我们的时间表,现在是60天。有谁知道我应该从哪里开始?
修改
好的,我现在有一张日历表。这是我的问题。我有我的专栏,用于表明在计算我的60天时使用了哪些天数。周末可用于该计算。但是,它们不能用于结果中。如果第60天是在星期日或星期六,则日期需要在星期五之前。我想我的第一个问题是,我如何将计算限制在日历表中的日期?
答案 0 :(得分:1)
使用日历表可以很容易。
PARAMETERS start_date DateTime;
SELECT TOP 1 sub.the_date
FROM
(
SELECT TOP 60 the_date
FROM tblCalendar
WHERE
the_date>=[start_date]
AND work_day=True
ORDER BY the_date
) AS sub
ORDER BY sub.the_date DESC;
该查询基于您为要评估的日期设置work_day
到True
的假设。 IOW,work_day
仅False
仅适用于贵组织的假期。
有关创建和加载日历表的示例代码,请参阅Using Start Date and End date in Access query处的CreateTable_calendar()
和LoadCalendar()
程序。要最初将所有日期(包括周末天数)指定为工作日,请在LoadCalendar()
。
'rs!work_day = Not (Weekday(dte) = vbSunday Or _
' Weekday(dte) = vbSaturday)
rs!work_day = True
最后,手动修改表格,将work_day
更改为False
,以便您的假期。
答案 1 :(得分:0)
您可以查看工作日以确保您没有选择周末:
SELECT TOP 1 CalDate, WDay
FROM (SELECT Top 60 c.CalDate,Weekday([Caldate]) AS WDay
FROM Calendar c
WHERE c.Holiday=False) a
WHERE WDay Not In (1,7)
ORDER BY CalDate DESC