【发布时间】:2010-11-06 11:05:01
【问题描述】:
使用 MS Access 数据库
我想显示今天记录最小值(时间)和前一天记录最大值(时间)
表格
PERSON ID CARDEVENTDATE CARDEVENTTIME
5008 20090805 080000
5008 20090805 140000
5008 20090809 180000
5008 20090809 220000
5008 20090813 090000
5008 20090813 200000
5008 20090818 110000
5008 20090818 232200
3405 20090805 080000
3405 20090805 180000
3405 20090809 070000
3405 20090809 230000
3010 20080806 090000
3010 20080806 230000
3010 20080810 100000
3010 20080810 160000
等等……
从上表中我想显示今天最小(时间)和前一天最大(时间)
前一天表示不是昨天,特定人员 ID 的前一个 cardeventtime。
我正在使用子查询。
我正在使用下面提到的查询。
"SELECT PERSONID, CARDEVENTDATE, MIN (CARDEVENTTIME) AS INTIME,
MAX (CARDEVENTTIME) AS OUTTIME FROM (SELECT T_PERSON.PERSONID,
T_CARDEVENT.CARDEVENTDATE, T_CARDEVENT.CARDEVENTTIME
FROM (T_TITLE INNER JOIN T_PERSON ON T_TITLE.TITLECODE = T_PERSON.TITLECODE)
INNER JOIN T_CARDEVENT ON T_PERSON.PERSONID = T_CARDEVENT.PERSONID
WHERE T_CARDEVENT.CARDEVENTDATE BETWEEN '" & sdate & "' AND '" & edate & "'
ORDER BY T_PERSON.TITLECODE) GROUP BY PERSONID, CARDEVENTDATE))"
但我无法获得前一天的最大值(时间)。我想获取特定人员 ID 的 Today min(时间)和前一天 Max(时间)。
前一天表示不是昨天,特定人员 ID 的前一个 cardeventtime。
预期输出。
PERSON ID CARDEVENTDATE MIN TIME CARDEVENTDATE MAX TIME
5008 20090818 110000 20090813 200000
5008 20090813 090000 20090809 220000
5008 20090809 180000 20090805 140000
3405 20090809 070000 20090805 180000
3010 20080810 100000 20080806 230000
等等……
需要查询帮助。
【问题讨论】:
-
感谢您取下帽子...
-
为什么你的输出包含三行 5008?我不认为我理解你的逻辑足以给你一个答案。根据您的描述,我认为每个 personID 应该有 1 行。