按照日期的最新显示不重复的记录,怎么写SELECT

sisiz 2008-05-01 01:34:59
表T
FILE1 FILE2 FILE3 FILEDTAE
AA 1 2 2008-4-4
AA 2 3 2008-4-5
AA 2 3 2008-4-6
BB 2 3 2008-5-5
BB 2 3 2008-5-8
CC 2 3 2008-6-1

要取的 结果 集为:就是 按照日期的最新显示不重复的记录,怎么写SELECT
AA 2 3 2008-4-6
BB 2 3 2008-5-8
CC 2 3 2008-6-1
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bqb 2008-05-01
  • 打赏
  • 举报
回复
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (FILE1 varchar(2),FILE2 int,FILE3 int,FILEDATE datetime)
insert into #T
select 'AA',1,2,'2008-4-4' union all
select 'AA',2,3,'2008-4-5' union all
select 'AA',2,3,'2008-4-6' union all
select 'BB',2,3,'2008-5-5' union all
select 'BB',2,3,'2008-5-8' union all
select 'CC',2,3,'2008-6-1'



select * from #t a where not exists( select 1 from #t where FILE1=a.FILE1 and FILEDATE>a.FILEDATE)


/*
AA 2 3 2008-04-06 00:00:00.000
BB 2 3 2008-05-08 00:00:00.000
CC 2 3 2008-06-01 00:00:00.000
*/
Limpire 2008-05-01
  • 打赏
  • 举报
回复
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (FILE1 varchar(2),FILE2 int,FILE3 int,FILEDTAE datetime)
insert into #T
select 'AA',1,2,'2008-4-4' union all
select 'AA',2,3,'2008-4-5' union all
select 'AA',2,3,'2008-4-6' union all
select 'BB',2,3,'2008-5-5' union all
select 'BB',2,3,'2008-5-8' union all
select 'CC',2,3,'2008-6-1'

select * from #T as t where FILEDTAE=(select max(FILEDTAE) from #T where FILE1=t.FILE1) order by 1

/*
AA 2 3 2008-4-6
BB 2 3 2008-5-8
CC 2 3 2008-6-1
*/

34,590

社区成员

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

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