select * from tb t where not exists(select 1 from tb where CarID_i=t.CarID_i and Inputtime_t>t.Inputtime_t)
select * from tb where not exists(select 1 from tb where cardid=t.card_id and inputtime_t>t.inputtime_t)
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
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
select * from (select *, row_number() over(partition by CarID_i order by Inputtime_t desc) rid from 表) a where rid=1
select * from t1 a where not exists(select 1 from t1 where a.Inputtime_t<Inputtime_t and a.CarID_i=CarID_i)
select * from tablename t where Inputtime_t=(select max(Inputtime_t) from tablename where CarID_i=t.CarID_i)
楼主,你这个问题和我问的问题太像了~而且 表的结构也差不多~不知道你的字段里有没有时间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
from tb t
where not exists(select 1 from tb where CarID_i=t.CarID_i and Inputtime_t>t.Inputtime_t)
select * from tb
where not exists(select 1 from tb where cardid=t.card_id and inputtime_t>t.inputtime_t)
(
select *,
row_number() over(partition by CarID_i order by Inputtime_t desc) rn
from tab
)
select *
from t where rn=1
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
row_number() over(partition by CarID_i order by Inputtime_t desc) rid
from 表) a where rid=1
where not exists(select 1 from t1 where a.Inputtime_t<Inputtime_t and a.CarID_i=CarID_i)
select * from tablename t
where Inputtime_t=(select max(Inputtime_t) from tablename where CarID_i=t.CarID_i)
如果有的话~在查询里限定一个时间范围~查询的时间大大减少~~你试一下~
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