求一SQL查询语句

imho888 2008-01-07 05:01:50
表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
也就是找出单人时间最近的一条记录列表,谢谢
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
imho888 2008-01-07
  • 打赏
  • 举报
回复
谢谢大家
kk19840210 2008-01-07
  • 打赏
  • 举报
回复

create table #tab (data int,dt datetime,[name] varchar(10))
insert into #tab values(2,'2007-01-02 11:01:01','001')

insert into #tab values(12,'2007-01-02 13:02:01','002')

insert into #tab values(21,'2007-01-02 15:04:00','001')

insert into #tab values(33,'2007-01-02 11:01:00','002')

select * from #tab a where not exists (select 1 from #tab where [name]=a.[name] and dt>a.dt) order by name


data dt name
----------- ----------------------- ----------
21 2007-01-02 15:04:00.000 001
12 2007-01-02 13:02:01.000 002

(2 行受影响)
pt1314917 2008-01-07
  • 打赏
  • 举报
回复

select * from 表T a
where not exists(select 1 from 表T where name = a.name and [datetime] > a.[datetime])

wzy_love_sly 2008-01-07
  • 打赏
  • 举报
回复
declare @tb table (data varchar(10),[Datetime] datetime,Name varchar(10))
insert into @tb select '2','2007-01-02 11:01:01','001'
insert into @tb select '12','2007-01-02 13:02:01','002'
insert into @tb select '21','2007-01-02 15:04:00','001'
insert into @tb select '33','2007-01-02 11:01:00','002'

select * from @tb a where
not exists(select 1 from @tb where name=a.name and [Datetime]>a.[Datetime])
order by name
data Datetime Name
21 2007-01-02 15:04:00.000 001
12 2007-01-02 13:02:01.000 002
-狙击手- 2008-01-07
  • 打赏
  • 举报
回复
select *
from t tt
where not exists(select 1 from t where tt.name = name and [datetime] > tt.[datetime])

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧