2016-07-06 6 views
0

私はこれについていくつかの新鮮な目を望んでいます。私は一日の最高の部分についてこの質問をナットしようとしてきましたが、答えを理解することはできません。 は、SQL Serverは、2012最大値に基づいてフィルタリングするSQLクエリ

私は何を私が取得したいことは

をsourcerecordIDごとに、最大バージョン番号のレコードIDのリストであるデータテーブル

enter image description here

に持って使用します上記の例から、私は2、5、7、9、10を得るでしょう 私が言ったように、私は実際にどのようにこの結果を得るために失われているので、任意の助けを歓迎します

答えて

1

これはかなりeですasy。 ROW_NUMBERウィンドウ機能を使用

Select recordID From 
(
select row_number()over(partition by sourcerecordID Order by versionnumber desc) RN,* 
From yourtable 
)A 
Where RN = 1 
+0

正確に私が何をしたか。 "Over" approchについて知らなかった – Hursey

0

あなたが求める質問と、結果が一致しません。

ここで質問する質問に対する回答です。

select SourceRecordId,max(VersionNumber) VersionNumber from ver 
group by SourceRecordId 
+0

私の質問の間違いのためにそれを見てくれてありがとう、ありがとう。しかし、あなたのソリューションは要件を満たしていません。最大バージョン番号のrecordIDが必要です。これは、ソースレコードID – Hursey

関連する問題