SQL查询最近的扫描日期

时间:2012-04-19 15:16:31

标签: sql

我使用以下查询来提取5个不同扫描名称的最新扫描日期,但是返回的数据只显示了1个扫描名称的最新日期。

查询只返回最近的扫描日期,扫描名称为'fisma-mgmt',即4/18/12。未显示4/17/12的其他4个扫描日期。任何人都可以看到导致这种结果的原因吗?

SELECT 
ScanName,
ScanDate,
pspplMSSeverity,
PatchMissing

FROM
(
SELECT
ScanName,
ScanDate,
pspplMSSeverity,
PatchMissing,

DENSE_RANK() OVER (ORDER BY ScanDate DESC) AS Rnk

FROM qryReportsPatchDeploymentPctbyPatch

where (ScanName like '%fisma-front%'
OR ScanName like '%fisma-back%'
OR ScanName like '%fisma-app%'
OR ScanName like '%fisma-meps%'
OR ScanName like '%fisma-mgmt%')


)t
WHERE rnk=1

1 个答案:

答案 0 :(得分:1)

哦,在windows函数中,你需要一个分区子句:

DENSE_RANK() OVER (PARTITION BY ScanName ORDER BY ScanDate DESC) AS Rnk

如上所述,查询仅返回最新的扫描结果,而不是每个名称的最新扫描。