【发布时间】:2020-03-29 01:40:14
【问题描述】:
我正在尝试使用 SQL 从 SCCM 提取更新合规性数据,并提出了以下查询:
SELECT updates.ArticleID, updates.Title, devices.Name, MAX(compliance.LastStatusChangeTime) AS LastUpdated, compliance.[Status]
FROM v_UpdateDeploymentSummary deployments
INNER JOIN v_UpdateInfo updates
ON deployments.CI_ID=updates.CI_ID
INNER JOIN CollectionMembers devices
ON deployments.CollectionID=devices.SiteID
INNER JOIN v_UpdateComplianceStatus compliance
ON compliance.CI_ID=deployments.CI_ID
WHERE compliance.[Status] IS NOT NULL
GROUP BY updates.ArticleID, updates.Title, devices.Name, compliance.[Status]
ORDER BY ArticleID, LastUpdated DESC
但是,SCCM 似乎为同一个更新部署存储了多个合规性状态记录。例如,昨晚在该设备上安装了 KB890830,从今天早上 09:19 开始,这反映在下面的行中。我想更改查询,以便返回的唯一行是第 15 行,显示该 KB 的最新状态更新。
有什么建议吗?
【问题讨论】:
标签: sql sql-server database select greatest-n-per-group