Oracle 查询以获取特定时间的数据

Oracle 查询以获取特定时间的数据,oracle,join,Oracle,Join,我需要写一个考勤查询,给出当前时间和前10分钟的考勤。总共有20项记录。 我有以下问题。它为我提供了当前时间的正确数据。但之前的出席人数继续减少。 例如:下午12:30,出席人数为2000人。但当时间达到下午1:30时,12:30对应的出席人数显示得非常少 SELECT TO_CHAR (each_sec, 'HH24:MI') p_time, COUNT (each_sec) cnt FROM (SELECT * FROM (SELECT d.userid, d.logda

我需要写一个考勤查询,给出当前时间和前10分钟的考勤。总共有20项记录。 我有以下问题。它为我提供了当前时间的正确数据。但之前的出席人数继续减少。 例如:下午12:30,出席人数为2000人。但当时间达到下午1:30时,12:30对应的出席人数显示得非常少

SELECT   TO_CHAR (each_sec, 'HH24:MI') p_time, COUNT (each_sec) cnt
FROM (SELECT *
        FROM (SELECT d.userid, d.logdate
                FROM atendance_data d
                     JOIN
                     (SELECT   userid, MAX (logdate) logdate
                          FROM atendance_data
                         WHERE TRUNC (logdate) = TRUNC (SYSDATE)
                      GROUP BY userid) m
                     ON d.userid = m.userid AND d.logdate = m.logdate
               WHERE d.c1 NOT IN ('Check-Out', 'Break-Out')) c
             JOIN
             (SELECT     SYSDATE + (1 - LEVEL) / 24 / 3600 * 600 each_sec
                    FROM DUAL
              CONNECT BY LEVEL <= 20) s ON  c.logdate <= s.each_sec
             )
 GROUP BY each_sec
   ORDER BY each_sec
我必须写一个where条件,以获取logdate的最大值,即小于每秒。我想这就是我错的地方。但是我不知道怎么做

谁能帮我做这个?
提前谢谢。

我已经这样做了。谢谢大家的回复

SELECT   COUNT (*), each_sec
FROM (SELECT a.userid, a.logdate, a.c1, each_sec
        FROM atendance_data a,
             (SELECT   userid, MAX (logdate) logdate, each_sec
                  FROM (SELECT userid, logdate, c1, each_sec
                          FROM (SELECT a.USERID,A.LOGDATE,A.C1, b.each_sec
                                  FROM atendance_data a
                                       JOIN
                                       (SELECT       SYSDATE
                                                   +   (1 - LEVEL)
                                                     / 24
                                                     / 3600
                                                     * 600 each_sec
                                              FROM DUAL
                                        CONNECT BY LEVEL <= 20) b
                                       ON a.logdate <= b.each_sec
                                     AND trunc(a.logdate) =trunc(sysdate)                                                                 
                                       ))
              GROUP BY userid, each_sec) b
       WHERE a.userid = b.userid
         AND a.logdate = b.logdate
         AND Trunc (a.logdate) = trunc(sysdate))
WHERE c1 NOT IN ('Check-Out', 'Break-Out')
GROUP BY each_sec 
ORDER  BY each_sec;

请描述您的表格并提供测试数据。没有这些,没有人能帮助你。检查的时间间隔是多少????