2017-09-13 99 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'子句是可选的。 –

相关问题