当前位置: 代码迷 >> Sql Server >> 找出同SID上的最大Series No或最大Version的那一行
  详细解决方案

找出同SID上的最大Series No或最大Version的那一行

热度:63   发布时间:2016-04-27 11:47:44.0
找出同SID下的最大Series No或最大Version的那一行
我是要找出同SID下的:(1)如果相同series no,就取最大Version那一行
(2)在最大series no的行中取version最大的记录
有这样一个表:

SID FY Type Series No Version
15476 2012 A 1 1
15476 2012 A 2 1
15476 2012 A 2 2
15476 2012 A 3 1
15800 2012 A 1 1
15800 2012 A 2 1
15800 2012 A 2 2
15800 2012 A 3 1

用一条SQL 语句,按SID,FY,Type查找出Series No和Version最大的那些记录。

也就是说,要找出下面这样的结果记录:
15476 2012 A 3 1
15800 2012 A 3 1

不能找出 象15476,2012,A,3,2这样的结果出来。

怎么写SQL语句????

SQL SERVER 里的
[/code]

------解决方案--------------------
SQL code
select *from [table] awhere exists (  select 1 from (    select sid, max([Series No]) as maxSNo     from [table]    group by sid    ) as b   where b.sid = a.sid and a.[Series No] = maxSNo  )and not exists (  select 1 from [table] b  where b.sid = a.sid   and b.[Series No] = a.[Series No]  and b.Version > a.Version  )
------解决方案--------------------
探讨

问题解决了

SELECT *
FROM (SELECT *,row_number()over(partition by [SID],[FY],[Type]
order by SeriesNo desc, Version desc) as num
……
  相关解决方案