我想我需要一个MS Access Query循环

时间:2017-12-07 17:15:34

标签: sql loops ms-access while-loop

我有一个用户登录和注销时间表,表格如下所示:

| ID | User |    WorkDate    |  Start   |  Finish  |
|  1 | Bill |     07/12/2017 | 09:00:00 | 17:00:00 |
|  2 | John |     07/12/2017 | 09:00:00 | 12:00:00 |
|  3 | John |     07/12/2017 | 12:30:00 | 17:00:00 |
|  4 | Mary |     07/12/2017 | 09:00:00 | 10:00:00 |
|  5 | Mary |     07/12/2017 | 10:10:00 | 12:00:00 |
|  6 | Mary |     07/12/2017 | 12:10:00 | 17:00:00 |

我正在运行一个查询,通过在Min of Finish和Max of Start之间运行一个日期差异来找出每个用户所占用的休息时间长度,然后做一些其他的总和/查询来找出他们的休息时间。

这适用于每个WorkDate每个用户最多有两行,因此第1,2,3行为我提供了可行的数据。

第4,5,6行没有。

长话短说,我如何根据查询中的MS Access中的上述数据计算中断时间。我假设我需要一些循环语句,但不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

这是首先想到的解决方案。

获取最小/最大开始和结束时间的第一个查询。 enter image description here

使用Min(开始时间)和max(结束时间)查询计算每天工作总时间的第二个查询。 enter image description here

第三个查询计算每个班次的总工作时间(开始和结束时间之间的时间差异),然后进行每日总和。 enter image description here

Forth查询计算第二个查询的总时间与第三个查询的总时间之间的差异。差异为您提供了休息时间。 enter image description here

如果您需要其他帮助,我可以提供一些示例查询的截图。