2017-09-13 9 views
0

私は3つのデータ、FacilityName、DateLastVerified、&強度を持つテーブルを持っています。私は、最新のDateLastVerifiedでレコードを取得できるようにしたい。 DateLastVerifiedが同じ場合、最も高い強度を持つレコードを選択します。上記の表のためにそう最新のデータを取得するには?

|FacilityName         | DateLastVerified | Intensity 
|Nemours/Alfred I. duPont Hospital for Children | 2014-03-01  | 16 
|Boston Children's Hospital      | 2015-11-29  | 6 
|Boston Children's Hospital      | 2017-04-01  | 3 
|Tufts Medical Center       | 2017-04-01  | 3 
|Tufts Medical Center       | 2017-04-01  | 6 

私は、ボストン小児病院とタフツ医療センターの2番目の項目の2番目の項目を返すようにしたいと思います。どのように私はこれを書くだろうか?

+1

使用しているデータベースであなたの質問にタグを付けます。 Tuftsのレコードだけでなく、なぜ2つのレコードを返すのですか?それは最も高い強度を有する。 –

+0

@ GordonLinoffこれは、私が働いているデータベースにテーブルが設定されている方法です.SQLサーバーデータベースです。 – DCity35

答えて

1

最新の DateLastVerifiedのレコードをプルできるようにします。 DateLastVerifiedが同じ場合は、 に、強度が最も高いレコードを選択します。この説明に基づいて

、あなたはorder byfetch first 1 row onlyを使用して一つのレコードを取得することができます。

select t.* 
from t 
order by DateLastVerified desc, Intensity desc 
offset 0 row fetch first 1 row only; 

またはSQL Server用:

select top 1 t.* 
from t 
order by DateLastVerified desc, Intensity desc; 
+0

FYI、それを実行しようとしたとき(データを含むCTEをロードしたとき)エラー 'Msg 153、Level 15、State 2、Line 12 FETCH文の最初のオプションの使用が無効です。 'fetch'を使う' offset' – Xedni

+0

@ Xedniです。 。 。私が質問に答えたとき、「sql-server」というタグは付けられていませんでした。 'offset'節は、他のデータベースではオプションです。 –

関連する問題