sql 查询问题 .求解决!!!

forever_code 2012-11-15 05:59:14
filesid filesname filesversion path filesUpLoadDate
6 新建文本文档.txt 1.0.0.0 //update//新建文本文档.txt 2012-11-15 16:24:30.820
7 新建文本文档.txt 1.0.0.1 //update//新建文本文档.txt 2012-11-15 16:31:16.377
8 李剑锋.txt 1.0.0.0 //update//李剑锋.txt 2012-11-15 16:42:55.757
9 李剑锋.txt 1.0.0.1 //update//李剑锋.txt 2012-11-15 16:42:58.480
10 李剑锋.txt 1.0.0.2 //update//李剑锋.txt 2012-11-15 17:48:55.663
....当然这里还有很多数据.
无论它有多少,我现在以文件名称 列(filesname 去掉相同的 ) 拿到
最新版本(filesversion )为最高的

以上数据 查出结果为:
7 新建文本文档.txt 1.0.0.1 //update//新建文本文档.txt 2012-11-15 16:31:16.377
10 李剑锋.txt 1.0.0.2 //update//李剑锋.txt 2012-11-15 17:48:55.663

请问sql 语句该怎么写 .
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
99归一 2012-11-16
  • 打赏
  • 举报
回复

SELECT *
FROM   (SELECT *,
               Row_number()OVER (partition BY filesname ORDER BY filesuploaddate DESC ) AS id
        FROM   table_a) a
WHERE  id <= 1 
99归一 2012-11-16
  • 打赏
  • 举报
回复
通过开窗函数,对表字段tablename分一下区,再在区里通过时间倒序排序,取每个区里的排名第一的那个就Okl了
forever_code 2012-11-16
  • 打赏
  • 举报
回复
引用 5 楼 longai123 的回复:
select a.* from tablename as a inner join (select filename,MAX(fileuploaddate) fileuploaddate from tablename group by filesname) as b on a.filesname=b.filesname and a.fileuploaddat……
谢了 ,他们以上的 可以实现 我目前问题能到的效果 .但是数据多了,就不行了. 你这个可以解决.
longai123 2012-11-15
  • 打赏
  • 举报
回复
select a.* from tablename as a inner join (select filename,MAX(fileuploaddate) fileuploaddate from tablename group by filesname) as b on a.filesname=b.filesname and a.fileuploaddate=b.fileuploaddate 理解万岁..........
我腫了 2012-11-15
  • 打赏
  • 举报
回复
select filesid,filesname,filesversion,path,filesUpLoadDate from tb as a
where not exists(select 1 from tb as x where x.filesname=a.filesname and x.filesUpLoadDate>=a.filesUpLoadDate)
發糞塗牆 2012-11-15
  • 打赏
  • 举报
回复
SELECT  *
 FROM    TB a
 WHERE   EXISTS ( SELECT 1
                  FROM   ( SELECT    filesname ,
                                     MAX(filesversion) filesversion
                           FROM      TB
                           GROUP BY  filesname
                         ) b
                  WHERE  a.filesname = b.filesname
                         AND a.filesversion = b.filesversion )
开启时代 2012-11-15
  • 打赏
  • 举报
回复
select a.* from tablename as a inner join (select filename,MAX(fileuploaddate) fileuploaddate from tablename group by filesname) as b on a.filesname=b.filesname and a.fileuploaddate=b.fileuploaddate
forever_code 2012-11-15
  • 打赏
  • 举报
回复
查询所有信息

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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