(续)实际问题的请教,急!
我的数据内容如下:   
 工号                  打卡日期                  打卡时间   
 001                  2006.09.08               07:40:09 
 001                  2006.09.08               08:09:00 
 002                  2006.09.08               08:09:00 
 001                  2006.09.09               08:09:09 
 . 
 .   
 如上是上班打卡记录,假设我们上班时间是8点的话,我要找出每天迟到的人,就是说我要找出每天第一次打卡时间是8点之后的人,现在我写的query文,找出的数据都不正确,请大家帮忙,急啊,在线等,     
 对于如上问题,我已经按照大家提供的方法,就是加一个“迟到”或“正常”的状态字段的方法,部分问题已得到解决,但是我还想要的结果是   
 不管他是迟到还是正常,我都想显示他的打卡时间。   
 就是,     
 工号                  日期               时间            状态   
 001                  09.01               08:02         迟到 
 002                  09.01               07:40         正常   
 请问怎么实现?急,在线等 
------解决方案--------------------  create table T(工号 varchar(10), 打卡日期 datetime, 打卡时间 varchar(10)) 
 insert T select    '001 ',       '2006-09-08 ',      '07:40:09 ' 
 union all select  '001 ',       '2006-09-08 ',      '08:09:00 ' 
 union all select  '002 ',       '2006-09-08 ',      '08:09:00 ' 
 union all select  '001 ',       '2006-09-09 ',      '08:09:09 '   
 select *,状态=(case when (convert(datetime, 打卡时间, 108)>  '1900-01-01 08:00:00 ') then  '迟到 ' else  '正常 ' end)  from T as tmp 
 where not exists(select 1 from T where 工号=tmp.工号 and 打卡日期=tmp.打卡日期 and 打卡时间 <tmp.打卡时间)