表描述:table_yyy ,两个关键字段 devid , time 
devid     time             desc
1         20080910          xx
1         20081013          xx
1         20081021          xx
2         20080913          xx
3         20080910          xx
3         20081013          xx需要查询出最接近当前时间的,各个设备的的记录!
查询结果
devid     time             desc
1         20081021          xx
2         20080913          xx
3         20081013          xxsql语句怎么写,谢谢!

解决方案 »

  1.   

    select * from table_yyy order by time desc
      

  2.   

    select * from table_yyy order by time desc
      

  3.   

    select * from table_yyy yy where not exists(select 1 from table_yyy where devid=yy.devid and time >yy.time )
      

  4.   

    select devid max(time) as time desc from table_yyy group by devid
      

  5.   

    select * from table_yyy y
    where not exists (
      select 1
      from table_yyy
      where devid=y.devid
      and time>y.time
      )
      

  6.   

    select * from table_yyy a,
    (select devid, max(time) as time from table_yyy group by devid)b
    where a.devid=b.devid and a.time=b.time
      

  7.   

    第一种
    select * from table_yyy a where not exists(select 1 from table_yyy where device=a.device and time>a.time) order by desc
    第二种
    select * from table_yyy a where time=(select max(time) from table_yyy where device=a.device) order by desc
    试试行不行吧