Chrome 使用 Report Builder 3.0 的 SCCM 合规性报告
SCCM Compliance Report for Chrome Using Report Builder 3.0
我正在尝试为 Chrome 创建合规性报告,其中列出了集合、安装了 chrome 的设备数量(所有版本)以及安装了 chrome 的设备数量Chrome 的最新版本我正在尝试指定合规性。获得这两个数字后,我将在报告生成器中创建一个包含 Chrome 合规百分比的列。我可以通过 Chrome(不考虑版本)和下面的查询
获得包含机器总数的集合
select c.Name,
Count(s.Name0) AS Installed
from V_R_System s
inner join v_GS_SoftwareFile vgs on vgs.ResourceId = s.ResourceId
join v_FullCollectionMembership fcm on fcm.ResourceID = s.ResourceID
join v_Collection c on c.CollectionID = fcm.CollectionID
where vgs.FileName = 'Chrome.exe' AND c.Name like
'%MyCollectionNamingScheme%'
Group By c.Name
我需要的下一步是计算 Chrome 版本 59 的机器数量。我知道我可以编辑顶部查询并获取它,但我需要将第一个数字设为 a多变的?我是 SQL 的新手,我还在学习。我考虑过在报表生成器中将查询分开,但我不知道这是否会通过从使用相同集合的两个单独表中获取数据来给我一个准确的答案。我知道我可以通过下面的查询来获取号码。我只想知道在单个查询中获得此信息的最佳方法是什么,或者我是否应该将它们分开并以某种方式在报表生成器中组合它们。
select c.Name,
Count(s.Name0) AS Installed
from V_R_System s
inner join v_GS_SoftwareFile vgs on vgs.ResourceId = s.ResourceId
join v_FullCollectionMembership fcm on fcm.ResourceID = s.ResourceID
join v_Collection c on c.CollectionID = fcm.CollectionID
where vgs.FileName = 'Chrome.exe' AND vgs.FileVersion0 like '59%' AND c.Name
like '%MyCollectionNamingScheme%'
Group By c.Name
使用 case 语句结合 Sum 来计算版本号的条目。
SELECT c.Name,
COUNT( s.Name0 ) AS Installed,
SUM( CASE
WHEN vgs.FileVersion0 LIKE (@FileVersion + '%')
THEN 1
ELSE 0
END
) AS CountCompliant
FROM V_R_System AS s
INNER JOIN v_GS_SoftwareFile AS vgs
ON vgs.ResourceId = s.ResourceId
JOIN v_FullCollectionMembership AS fcm
ON fcm.ResourceID = s.ResourceID
JOIN v_Collection AS c
ON c.CollectionID = fcm.CollectionID
WHERE vgs.FileName = 'Chrome.exe'
AND c.Name LIKE '%MyCollectionNamingScheme%'
GROUP BY c.Name
;
我正在尝试为 Chrome 创建合规性报告,其中列出了集合、安装了 chrome 的设备数量(所有版本)以及安装了 chrome 的设备数量Chrome 的最新版本我正在尝试指定合规性。获得这两个数字后,我将在报告生成器中创建一个包含 Chrome 合规百分比的列。我可以通过 Chrome(不考虑版本)和下面的查询
获得包含机器总数的集合select c.Name,
Count(s.Name0) AS Installed
from V_R_System s
inner join v_GS_SoftwareFile vgs on vgs.ResourceId = s.ResourceId
join v_FullCollectionMembership fcm on fcm.ResourceID = s.ResourceID
join v_Collection c on c.CollectionID = fcm.CollectionID
where vgs.FileName = 'Chrome.exe' AND c.Name like
'%MyCollectionNamingScheme%'
Group By c.Name
我需要的下一步是计算 Chrome 版本 59 的机器数量。我知道我可以编辑顶部查询并获取它,但我需要将第一个数字设为 a多变的?我是 SQL 的新手,我还在学习。我考虑过在报表生成器中将查询分开,但我不知道这是否会通过从使用相同集合的两个单独表中获取数据来给我一个准确的答案。我知道我可以通过下面的查询来获取号码。我只想知道在单个查询中获得此信息的最佳方法是什么,或者我是否应该将它们分开并以某种方式在报表生成器中组合它们。
select c.Name,
Count(s.Name0) AS Installed
from V_R_System s
inner join v_GS_SoftwareFile vgs on vgs.ResourceId = s.ResourceId
join v_FullCollectionMembership fcm on fcm.ResourceID = s.ResourceID
join v_Collection c on c.CollectionID = fcm.CollectionID
where vgs.FileName = 'Chrome.exe' AND vgs.FileVersion0 like '59%' AND c.Name
like '%MyCollectionNamingScheme%'
Group By c.Name
使用 case 语句结合 Sum 来计算版本号的条目。
SELECT c.Name,
COUNT( s.Name0 ) AS Installed,
SUM( CASE
WHEN vgs.FileVersion0 LIKE (@FileVersion + '%')
THEN 1
ELSE 0
END
) AS CountCompliant
FROM V_R_System AS s
INNER JOIN v_GS_SoftwareFile AS vgs
ON vgs.ResourceId = s.ResourceId
JOIN v_FullCollectionMembership AS fcm
ON fcm.ResourceID = s.ResourceID
JOIN v_Collection AS c
ON c.CollectionID = fcm.CollectionID
WHERE vgs.FileName = 'Chrome.exe'
AND c.Name LIKE '%MyCollectionNamingScheme%'
GROUP BY c.Name
;