使用循环

时间:2017-07-31 22:36:01

标签: ms-access

我想在访问中使用计算字段,但是,对我来说棘手的部分是我必须在日期中运行它。我有一个数据库,当天有多个寄存器,但日期不同。我们以此为例:

Date | Report | Onblock Time
-----|--------|-------------
27/5 |   5:45 |         8:52
-----|--------|-------------
27/5 |   9:35 |        10:57
-----|--------|-------------
27/5 |  11:52 |        12:59

所以,我想要做的是在第一次显示时增加45分钟(在这种情况下为5:45),并在最后一次增加30分钟(在这种情况下为12:59)。一旦完成这两件事,我想计算它们之间的差异。

我在表达式生成器中尝试了[(Onblock Time + 0:30) - (Report - 0:45)],它似乎有效。我遇到的问题是当我必须为具有1000个寄存器的表创建它时,每天4-6个。是否有任何类型的自动循环,如for each之类的东西?

提前致谢,
乔纳森

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要一个查询,该查询返回每天最小ReportTime + 0:45和最大OnblockTime + 0:30之间的分钟数。如果是这样,查询的SQL应该是这样的:

SELECT ReportDate
    ,DateDiff("n", DateAdd("n", 45, Min([ReportTime])), DateAdd("n", 30, Max([OnblockTime]))) AS Diff
FROM TimeTable
GROUP BY ReportDate;