1

DISTINCT 行を選択するクエリを作成しようとしています。リビジョン マイナー/メジャー スキームを使用して選択します。以下はテーブルの例です。

Serial Number | RevMajor | RevMinor
-----------------------------------
AQ155         |    1     |    1
AQ155         |    1     |    2  
AQ155         |    1     |    1
AQ155         |    1     |    7    
AQ155         |    2     |    1  <---------
JR2709        |    1     |    7
JR2709        |    2     |    2  <---------

T-SQL 2008 で、強調表示された 2 つの行 ("最新のリビジョン") のみを選択するクエリを作成するにはどうすればよいですか?
前もって感謝します!

4

2 に答える 2

1

あなたは出来る

select * from (
    select *, row_number() over (partition by [Serial Number] order by RevMajor desc, RevMinor desc) VersionRank
    from table
) T
where VersionRank = 1
于 2013-07-17T15:05:05.467 に答える
0
select [serial number], revmajor, revminor
from table1
where revMajor = (select max(revmajor) from table1)

これを行う別の方法は次のとおりです。

select [serial number], revmajor, revminor
from table1 a
inner join ( select max(revMajor) from table1 ) b on a.revmajor = b.revmajor

2行しかないことがわかっている場合の別の方法:

    select top 2 [serial number], revmajor, revminor
    from table1 a
    order by revmajor desc, revminor desc
于 2013-07-17T14:58:46.370 に答える