1

这是我的第二篇文章,它是关于同一主题的,我开始使用 Access 一段时间,所以我需要你的帮助来构建一个包含一些变量的查询。

场景

我需要做一个查询来显示一个人在办公室里呆了多少时间,但我第一篇文章的不同之处在于我需要查看操作的详细信息。主要列表将在一个人进入办公室时创建一个项目,当一个人离开办公室时创建另一个项目,但存在一些变量 1 - 我有更多的一栋大楼 2 - 每栋大楼都有很多旋转门,我需要仅定义主厅 3 的闸机 - 有时我们遇到系统问题,系统无法创建入口/出口项目

以列表为例

ID 全名 日期 时间 状态 闸机办公室

1 安德烈席尔瓦 02/25/2013 09:00 AM 在 03 SP

2 安德烈席尔瓦 02/25/2013 09:10 AM 在 05 SP

3 安德烈席尔瓦 2013 年 2 月 25 日下午 12:00 出 06 SP

4 安德烈席尔瓦 02/25/2013 12:10 PM Out 02 SP

5 安德烈席尔瓦 2013 年 2 月 25 日下午 14:00 在 02 SP

6 安德烈席尔瓦 02/25/2013 下午 14:10 在 05 SP

7 安德烈席尔瓦 02/25/2013 19:00 PM Out 06 SP

8 安德烈席尔瓦 02/25/2013 19:10 PM Out 02 SP

9 安德烈席尔瓦 02/26/2013 下午 14:00 在 03 BH

10 安德烈席尔瓦 2013 年 2 月 26 日下午 14:10 在 05 BH

11 安德烈席尔瓦 2013 年 2 月 26 日下午 23:55 出 06 BH

12 安德烈席尔瓦 2013 年 2 月 27 日上午 01:10 出局 03 BH

13 安德烈席尔瓦 02/28/2013 09:00 AM 在 03 RJ

14 安德烈席尔瓦 02/28/2013 09:10 AM 在 05 RJ

15 安德烈席尔瓦 2013 年 2 月 28 日下午 12:00 出 05 RJ

16 安德烈席尔瓦 2013 年 2 月 29 日上午 11:00 在 05 SP

17 安德烈席尔瓦 2013 年 2 月 29 日下午 17:10 出 06 SP

18 安德烈席尔瓦 02/29/2013 17:20 PM Out 03 SP

基于主列表,我需要使用这种格式创建一个查询


全名 日期 转闸时间 日期 转闸时间 办公室 总时间

安德烈席尔瓦 02/25/2013 03 09:00 AM 02/25/2013 02 12:10 PM SP 03:10

安德烈席尔瓦 02/25/2013 02 14:00 PM 02/25/2013 02 19:10 PM SP 05:10

安德烈席尔瓦 02/26/2013 03 14:00 PM 02/27/2013 03 01:00 AM BH 11:00

安德烈席尔瓦 02/28/2013 03 09:10 AM RJ Not found a record of out

安德烈席尔瓦 02/29/2013 03 17:20 PM SP 未找到记录

我需要查看同一办公室 02/03 闸机进出之间的间隔,当没有找到一项进出时,答案应该是 0。

我尝试使用 Access 的标准查询,例如交叉表或尝试使用 IFF 创建表达式,但没有成功。

非常感谢安德烈

4

1 回答 1

0

这不是答案,但我没有时间,这个查询可以帮助你

SELECT 
  t1.FullName, 
  t1.Office, 
  t1.DateTime, 
  t1.status, 
  sum(IIf(isnull(t2.status),0,IIf(t2.status="In",1,-1))) AS deep_before, 
  sum(IIf(isnull(t2.status),0,IIf(t2.status="In",1,-1)))
    +IIf(t1.status="In",1,-1) AS deep_after
FROM Table1 AS t1 
  LEFT JOIN Table1 AS t2 ON (t1.FullName=t2.FullName) 
      AND (t1.Office=t2.Office) AND (t1.Datetime>t2.DateTime)
GROUP BY t1.FullName, t1.Office, t1.DateTime, t1.status;

明天我可能会再次看到它

于 2013-03-01T22:59:32.520 回答