如何查询数据表中各个设备最后一次出现的记录?

来源:互联网 发布:外勤助手软件 编辑:程序博客网 时间:2024/06/06 03:22

在南方某出租车GPS数据记录表(表明为v)中,表结构如下:

 

表结构中有车辆ID字段:VehicleSimID、当前时间字段:GPSTime,车辆GPS经纬度字段:GPSLongitude和GPSLatitude,内容如下:

 

 

根据要求,要对这个数据表(天表)查询,查询出所有的车辆在某个时间前最后一次出现的记录,这样可以在地图上显示所有车辆当前的位置。

因此用以下SQL语句做测试(在MySQL的Navicat里输入):

 

//查询指定时间前最后一次出现的记录,仅两个字段

select vehiclesimid,max(gpstime) from v where gpstime<'2010-09-02 23:20:00' group by vehiclesimid;

//查询指定设备,指定时间前出现的记录
select vehiclesimid,GPSLongitude,GPSLatitude,gpstime from v where gpstime<'2010-09-02 23:20:00' and vehiclesimid=806401925711 order by gpstime desc;

//查询指定时间前最后一次出现的记录,完整字段
select v.vehiclesimid,GPSLongitude,GPSLatitude,v.gpstime from v,
(select vehiclesimid as vid,max(b.gpstime) as gpstime from v b where b.gpstime<'2010-09-02 23:20:00' group by vid)
 a where v.vehiclesimid=a.vid and v.gpstime=a.gpstime;

 

0 0
原创粉丝点击