0

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

该查询仅返回总体上最近的扫描日期,即扫描名称“fisma-mgmt”的 2012 年 4 月 18 日。2012 年 4 月 17 日的其他 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
4

1 回答 1

0

哦,在windows函数中,需要一个partition子句:

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

如所写,查询仅返回总体上最近的扫描,而不是每个名称的最近扫描。

于 2012-04-19T15:20:52.227 回答