0

次のクエリを使用して、5 つの異なるスキャン名の最新のスキャン日付を取得していますが、返されるデータは、1 つのスキャン名の最新の日付を示しているだけです。

クエリは、スキャン名「fisma-mgmt」の 4/18/12 である最新のスキャン日付全体を返すだけです。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 関数では、パーティション句が必要です。

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

書かれているように、クエリは、名前ごとの最新のスキャンではなく、全体的な最新のスキャンのみを返します。

于 2012-04-19T15:20:52.227 に答える