表T 字段:Data,Datetime , Name 2 2007-01-02 11:01:01 001
12 2007-01-02 13:02:01 002
21 2007-01-02 15:04:00 001
33 2007-01-02 11:01:00 002 求:查询出的结果为:
21 2007-01-02 15:04:00 001
12 2007-01-02 13:02:01 002
也就是找出单人时间最近的一条记录列表,谢谢 大家给我的答案是:
select *
from t tt
where not exists(select 1 from t where tt.name = name and [datetime] > tt.[datetime])但是经过验证发现当数据量很大很大的时候这条语句执行的速度很慢很慢,不知道有没有其它的办法,可以得到这个结果,或者有什么办法可以提高查询速度?
非常感谢大家给我的帮助!
12 2007-01-02 13:02:01 002
21 2007-01-02 15:04:00 001
33 2007-01-02 11:01:00 002 求:查询出的结果为:
21 2007-01-02 15:04:00 001
12 2007-01-02 13:02:01 002
也就是找出单人时间最近的一条记录列表,谢谢 大家给我的答案是:
select *
from t tt
where not exists(select 1 from t where tt.name = name and [datetime] > tt.[datetime])但是经过验证发现当数据量很大很大的时候这条语句执行的速度很慢很慢,不知道有没有其它的办法,可以得到这个结果,或者有什么办法可以提高查询速度?
非常感谢大家给我的帮助!
from t tt
where [datetime]=(select top 1 [datetime] from t where tt.name=name order by [datetime] desc)
select *
from t tt
where [datetime]=(select top 1 [datetime] from t where tt.name=name order by [datetime] desc)
速度快多了,谢谢你。