数据排除方面的有关问题,求指点

数据排除方面的问题,求指点。例如:NAMETIMESTATUS张三 2012-09-01 08:28:30进张三 2012-09-01 08:28:57进张

数据排除方面的问题,求指点。
例如:

 NAME TIME STATUS  
 张三 2012-09-01 08:28:30 进
 张三 2012-09-01 08:28:57 进
 张三 2012-09-01 08:29:02 进
 张三 2012-09-01 09:28:30 出
 张三 2012-09-01 09:28:57 出
 张三 2012-09-01 09:29:02 出

求指导,怎么能把相同状态的,比如都是进的,第一次的时间读取出来?

我想查出来的效果是:

 NAME TIME STATUS  
 张三 2012-09-01 08:28:30 进
 张三 2012-09-01 09:28:30 出

就是把最早的那次记录查询出来,不知道该怎么写好,新手。。。

[解决办法]

SQL code
if object_id('[tb]') is not null drop table [tb]gocreate table [tb]([NAME] varchar(4),[TIME] datetime,[STATUS] varchar(2))insert [tb]select '张三','2012-09-01 08:28:30','进' union allselect '张三','2012-09-01 08:28:57','进' union allselect '张三','2012-09-01 08:29:02','进' union allselect '张三','2012-09-01 09:28:30','出' union allselect '张三','2012-09-01 09:28:57','出' union allselect '张三','2012-09-01 09:29:02','出'goselect *from tb twhere not exists(select 1 from tb where name=t.name and status=t.status and time<t.time)/**NAME TIME                    STATUS---- ----------------------- ------张三   2012-09-01 08:28:30.000 进张三   2012-09-01 09:28:30.000 出(2 行受影响)**/
[解决办法]
如果你的表中字段只有这三个,那么使用以下语句就可以
SQL code
select name,min(time) as time,statusfrom tbgroup by name,status