本帖最后由 wen1512 于 2012-01-18 09:43:44 编辑

解决方案 »

  1.   

    select *
    from tb t
    where not exists(select 1 from tb where CarID_i=t.CarID_i and Inputtime_t>t.Inputtime_t)
      

  2.   


    select * from tb
    where not exists(select 1 from tb where cardid=t.card_id and inputtime_t>t.inputtime_t)
      

  3.   

    try this,with t as
    (
    select *,
    row_number() over(partition by CarID_i order by Inputtime_t desc) rn
    from tab
    )
    select *
    from t where rn=1
      

  4.   

    select t.* from tb t where Inputtime_t = (select max(Inputtime_t) from tb where CarID_i = t.CarID_i) order by t.CarID_i 
    select t.* from tb t where not exists (select 1 from tb where CarID_i = t.CarID_i and Inputtime_t > t.Inputtime_t) order by t.CarID_i 
      

  5.   

    select * from (select *,
    row_number() over(partition by CarID_i order by Inputtime_t desc) rid
    from 表) a where rid=1
      

  6.   

    select * from t1 a
    where not exists(select 1 from t1 where a.Inputtime_t<Inputtime_t and a.CarID_i=CarID_i)
      

  7.   


    select * from tablename t
    where Inputtime_t=(select max(Inputtime_t) from tablename where CarID_i=t.CarID_i)
      

  8.   

    楼主,你这个问题和我问的问题太像了~而且 表的结构也差不多~不知道你的字段里有没有时间datatime 
    如果有的话~在查询里限定一个时间范围~查询的时间大大减少~~你试一下~
    select * from tb a where GpsID_i = (select max(GpsID_i) from tb where (Inputtime_t between '2012-01-19 8:30' and '2012-01-19 22:30:00') AND CarID_i =a.CarID_i )Inputtime_t 时间可设置成当前时间再小点 到当天12点之前   有个前提是GpsID_i是自动增长且无重复
    你试一下PS.我的帖子还没有结,目的是获取一条线路的最新轨迹,可以交流一下!
    http://topic.csdn.net/u/20120116/15/b57c181c-6024-4def-b3bb-b7d742e7e735.html