例:数据库的表中记录了一天中人员进出的时间,同一个人可以记录多次,现在我需要取得同一个人在同一天的记录中离现在系统时间最近的一次进出时间!表如下:
表名:table1
tagid       name        inouttime       inoutdate0001        aaa         15:20:30        2005-12-16
0002        bbb         15:30:15        2005-12-16
0003        ccc         15:50:20        2005-12-16
0001        aaa         16:10:50        2005-12-16

解决方案 »

  1.   

    SELECT id, name, max(inouttime), inoutdate
    FROM table1
    WHERE inoutdate=#2005-12-16#
    GROUP BY id, name, inoutdate;
      

  2.   

    是要過這個時間,還是未到這個時間。比如:現在是2:00,有1:58,2:02,取哪個?
    跟現在時間比,然後取最大或最小的那個。啊明白?交流MSN:[email protected]
      

  3.   

    SELECT id, name, max(inouttime), inoutdate
    FROM table1
    WHERE inoutdate=#2005-12-16# And inoutTime <= #2:00:00#
    GROUP BY id, name, inoutdate;
      

  4.   

    sql="select * from table1 where name='"&name1&"' and inoutdate=#"& date() &"# order by inoutTime desc"
    access这句就可以  给分~~~name1为你要的名字 date()是系统函数  如果是SQL就把 #换为单引号
      

  5.   

    SELECT id, name, inouttime, inoutdate
    FROM table1
    WHERE Id='0001'
    后面是按时间降序排列,具体语法忘记了,呵呵
     然后取第一条记录即可!!