日期:2014-05-16  浏览次数:20982 次

vb+access,求助大侠,怎样用sql语句查询出表中所有人同日同时间段内最早的那条时间记录
有一表,包含姓名,时间,日期等字段,我想选出所有人某天某个时间段内最早的那个时间记录。  
比如:张三   6:00   07-7-14  
张三   6:02   07-7-14  
张三   6:04   07-7-14  
张三   6:05   07-7-14  
张无   6:04   07-7-14  
张无   6:08   07-7-14  

我想选出所有人在07-7-14那天,6:00--7:00最早那次时间纪录,  
即:张三   6:00   07-7-14  
张无   6:04   07-7-14  
应该怎么做???  
谢谢高人了!!!


------解决方案--------------------
--方式1:用子查询

select *
from 表名 as a
where 时间=(select top 1 时间 from tt where a.姓名=姓名)


--方式2:原表与分组后的子查询关联

select a.*
from 表名 as a
inner join (select 姓名,min(时间) as 最早的时间 from 表名 group by 姓名) as b on A.姓名=B.姓名 and A.时间=B.最早的时间

------解决方案--------------------
select a.*
from tt as a
inner join (select 姓名,min(时间) as ms from tt group by 姓名) as b on A.姓名=B.姓名 and A.时间=B.ma