【发布时间】:2020-10-23 17:55:34
【问题描述】:
在 SCCM 中,我正在创建一个数据透视报告,它将从应用程序列表中返回应用程序版本。只要我知道已安装应用程序的确切名称,使用以下代码对我来说效果很好:
SELECT netbios_name0 AS 'Computer Name',
model0 AS Model,
[Google Chrome],
[Zscaler],
[itunes],
[Microsoft Office 365 ProPlus - en-us] AS 'Office'
FROM (SELECT rSYS.netbios_name0,
CS.model0,
arp.displayname0,
arp.version0 AS ARPVersion
FROM v_r_system rSYS
JOIN v_gs_computer_system CS
ON CS.resourceid = rsys.resourceid
JOIN v_add_remove_programs arp
ON rsys.resourceid = arp.resourceid
) Temp
PIVOT ( Max(arpversion)
FOR displayname0 IN ([Google Chrome],
[Zscaler],
[itunes],
[Microsoft Office 365 ProPlus - en-us]
) ) Piv
查询结果如下:
ComputerName Model Google Chrome Zscaler itunes Office
Computer1 Latitude 5300 2-in-1 86.0.4240.111 2.1.2.105 12.9.2.6 16.0.11328.20368
Computer2 Latitude 7390 86.0.4240.111 2.1.2.105 12.9.2.6 16.0.11328.20492
Computer3 Latitude 7390 2-in-1 86.0.4240.111 1.5.2.501 12.9.2.7 16.0.11328.20492
这正是我希望报告的外观,但是,许多/大多数应用程序的名称随每个版本而变化,因此我需要能够对应用程序的不同版本进行通配符搜索。我尝试在我的 IN 语句中使用 % 通配符,但看起来 SQL 将其视为文字字符并且不返回任何记录。
所以,我想知道是否有一种方法可以使用上面显示的代码进行通配符搜索,或者是否有其他方法可以以类似的格式显示数据。
谢谢!
【问题讨论】:
标签: sql reporting-services pivot-table sccm