【发布时间】:2018-05-21 20:57:19
【问题描述】:
我有一个用户登录和注销时间表,表如下所示:
| 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 |
我正在运行一个查询来找出每个用户休息的长度,方法是运行完成的最小值和开始的最大值之间的日期差异,然后执行一些其他求和/查询来找出他们的休息时间.
这适用于我每个 WorkDate 的每个用户最多有两行,所以第 1、2、3 行给了我可用的数据。
第 4、5、6 行没有。
长话短说,我如何在查询中根据 MS Access 中的上述数据计算休息时间。我假设我需要一些循环语句,但不知道从哪里开始。
【问题讨论】:
-
为什么你不能计算每行的总时间,然后按
User和WorkDate分组以获得每个用户/工作日期的总分钟数。然后从 480(8 小时 * 60 分钟)中减去总分钟数。这会给你休息时间。 -
我的第一个想法。英雄所见略同!它可以工作 8 小时轮班,但有些用户的工作时间超过 8 小时,有些用户的工作时间少于 8 小时。计算休息时间的唯一方法是将“缺失”时间加在一起,
标签: sql loops ms-access while-loop