日期:2014-05-17  浏览次数:20817 次

如何查询第一个数据和最后一个数据
现有一表A,字段如下:
车号,任务号,毛重,时间。
现如何按“任务号”查询一段时间内(按时间排序)第一次称重的时间和最后一次称重时间呢?
------解决方案--------------------
select 任务号,min(时间)第一次称重,max(时间)最后一次称重
from a
where 时间 between @begin and  @end 
group by 任务号
------解决方案--------------------
select
    任务号,
    (select top 1 时间 from tb b where a.任务号=b.任务号 order by 时间 asc) as 第一次称重时间,
    (select top 1 时间 from tb c where a.任务号=c.任务号 order by 时间 desc) as 最后一次称重时间
from
    tb a

------解决方案--------------------

if OBJECT_ID('table1','u') is not null
drop table table1

go
create table table1
(
CarNo int,
MissionNo int,
Heavy int,
MiTime datetime
)

go
insert into table1 values
(1001,20001,16,'2012-10-15 12:38:55'),
(1002,20001,2,'2012-10-16 20:38:55'),
(1003,20001,12,'2012-10-17 22:38:55'),
(1004,20002,11,'2012-12-15 22:30:55'),
(1005,20002,22,'2012-12-16 22:38:55'),
(1006,20003,9,'2012-12-17 22:38:55')


--SQL
--第一次
select top 1 MiTime From table1 where MissionNo=20001 order by MiTime 
--最后一次
select top 1 MiTime From table1 where MissionNo=20001 order by MiTime desc