2017-09-13 105 views
0

我有一個表有三個數據,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 

因此對於上表我想回到波士頓兒童醫院塔夫茨醫學中心的第二項和第二項。我怎麼寫這個?

+1

標籤與正在使用的數據庫你的問題。你爲什麼要返回兩條記錄而不僅僅是塔夫茨唱片?它具有最高的強度。 –

+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

僅供參考當我嘗試運行該程序(用數據加載CTE)時,它出現錯誤'消息153,級別15,狀態2,行號12 FETCH語句中第一個選項的使用無效。'我認爲您需要包含'offset'使用'fetch' – Xedni

+0

@Xedni。 。 。當我回答這個問題時,它沒有被標記爲「sql-server」。其他數據庫中的'offset'子句是可選的。 –

相關問題