在Access中构建查询以使用时间

时间:2013-03-01 20:41:39

标签: ms-access time

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

场景

我需要进行查询以显示一个人留在办公室的时间,但我的第一篇文章的不同之处是我需要查看操作的详细信息。 当一个人进入办公室时,主要列表将创建一个项目,当人员离开办公室时创建其他项目,但存在一些变量 1 - 我有一栋建筑 2 - 每栋建筑都有很多十字转门,我只需要定义主殿的旋转门 3 - 有时我们遇到系统问题,系统没有创建进入/退出项目

遵循列表

的示例

ID全名日期时间状态Turnstile Office

1 Andre Silva 02/25/2013 09:00 AM 03 SP

<2> 2 Andre Silva 02/25/2013 09:10 AM 05 SP

3 Andre Silva 02/25/2013 12:00 PM Out 06 SP

4 Andre Silva 02/25/2013 12:10 PM Out 02 SP

5 Andre Silva 02/25/2013 14:00 PM 02 SP

6 Andre Silva 02/25/2013 14:10 PM 05 SP

7 Andre Silva 02/25/2013 19:00 PM Out 06 SP

8 Andre Silva 02/25/2013 19:10 PM Out 02 SP

9 Andre Silva 02/26/2013 14:00 PM 03 BH

10 Andre Silva 02/26/2013 14:10 PM在05 BH

11 Andre Silva 02/26/2013 23:55 PM Out 06 BH

<12> Andre Silva 02/27/2013 01:10 AM Out 03 BH

13 Andre Silva 02/28/2013 09:00 AM在03 RJ

14 Andre Silva 02/28/2013 09:10 AM在05 RJ

15 Andre Silva 02/28/2013 12:00 PM Out 05 RJ

16 Andre Silva 02/29/2013 11:00 AM 05 SP

17 Andre Silva 02/29/2013 17:10 PM Out 06 SP

18 Andre Silva 02/29/2013 17:20 PM Out 03 SP

根据主列表,我需要使用此格式创建查询


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

Andre Silva 02/25/2013 03 09:00 AM 02/25/2013 02 12:10 PM SP 03:10

Andre Silva 02/25/2013 02 14:00 PM 02/25/2013 02 19:10 PM SP 05:10

Andre Silva 02/26/2013 03 14:00 PM 02/27/2013 03 01:00 AM BH 11:00

Andre Silva 02/28/2013 03 09:10 AM RJ未找到out

的记录

Andre Silva 02/29/2013 03 17:20 PM SP未找到

的记录

我需要在同一办公室看到旋转门02/03进/出之间的间隔,当没有找到一个进/出项时答案应为0。

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

非常感谢 安德烈

1 个答案:

答案 0 :(得分: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;
明天可能会再次看到它