Sql SCCM2007 Java查询
我想生成一个查询,列出除6以外的所有Java版本的PC。他们查询我创建的显示任何Java版本(包括6)的PC,我只想列出有Java但没有6的PC 这是我得到的Sql SCCM2007 Java查询,sql,sccm,Sql,Sccm,我想生成一个查询,列出除6以外的所有Java版本的PC。他们查询我创建的显示任何Java版本(包括6)的PC,我只想列出有Java但没有6的PC 这是我得到的 SELECT arp.DisplayName0 AS 'Product', arp.Version0 AS 'Version', sys.Name0 AS 'PC Name' FROM v_Add_Remove_Programs arp INNER JOIN v_R_System sys ON
SELECT
arp.DisplayName0 AS 'Product',
arp.Version0 AS 'Version',
sys.Name0 AS 'PC Name'
FROM
v_Add_Remove_Programs arp
INNER JOIN v_R_System sys ON arp.ResourceID=sys.ResourceID
WHERE
arp.DisplayName0 LIKE '%Java%' AND
arp.Publisher0 LIKE '%Oracle%' AND
arp.Version0 NOT LIKE '%6%'
GROUP BY
arp.DisplayName0,
arp.Version0,
sys.Name0
表结构:
Product Version PC Name
Java 7 Update 10 7.0.100 PC1
Java 7 Update 10 7.0.100 PC2
Java 7 Update 11 7.0.110 PC3
Java 7 Update 13 7.0.130 PC4
Java 7 Update 13 7.0.130 PC5
Java 7 Update 13 (64-bit) 7.0.130 PC6
编辑:在看到有关某些电脑安装了多个版本的评论后,您需要使用NOT EXISTS查询筛选出任何安装了版本6的电脑
SELECT DISTINCT
arp.DisplayName0 AS 'Product',
arp.Version0 AS 'Version',
sys.Name0 AS 'PC Name'
FROM v_Add_Remove_Programs arp
INNER JOIN v_R_System sys ON arp.ResourceID = sys.ResourceID
WHERE arp.DisplayName0 = 'Java'
AND NOT EXISTS
(
SELECT *
FROM v_Add_Remove_Programs arp1
INNER JOIN v_R_System sys1 ON arp1.ResourceID = sys1.ResourceID
WHERE sys1.Name0 = sys.Name0
AND arp1.DisplayName0 = 'Java'
AND arp1.Version0 LIKE '6%'
)
另一个解决方案是只排除版本为6:SELECT的ResourceID arp.DisplayName0作为“产品”, arp.Version0作为“版本”, sys.Name0为“PC名称” 从…起 v_添加_删除_程序arp arp上的内部连接v_R_系统sys.ResourceID=sys.ResourceID 哪里 arp.DisplayName0类似于“%Java%”和 arp.Publisher0,如“%Oracle%”和 arp.ResourceID不在 选择资源ID 从v_添加_删除_程序 哪里 arp.DisplayName0类似于“%Java%”和 arp.Publisher0,如“%Oracle%”和 arp.Version0类似于“%6%” 分组 arp.DisplayName0, arp.Version0,
sys.Name0您的数据是什么样子的?将LIKE与前导通配符和尾随通配符一起使用似乎令人担忧。数据显示,除了6之外,所有版本的Java都安装在PC上,但问题是,其中一些PC还安装了6以及7或8。我只想要安装了7台或8台的电脑,但不要同时安装6台。我的意思是,数据在物理上是什么样子的。您可以包含表格中的示例数据吗?产品版本PC名称Java 7 Update 10 7.0.100 PC1 Java 7 Update 10 7.0.100 PC2 Java 7 Update 11 7.0.110 PC3 Java 7 Update 13 7.0.130 PC4 Java 7 Update 13 7.0.130 PC5 Java 7 Update 13 64位7.0.130 PC6例如,PC4安装了Java 7,但也安装了Java 6。如果还安装了Java 6,我不想在列表中显示PC4。Matt,我刚试过你的,但仍然有在同一台电脑上安装了6和7的电脑。Siyual,我没有从你那里得到任何记录,我知道有些电脑安装了7,而不是6。我想Siyual现在可以工作了,我将显示名称更改为LIKE%,现在点击率很高,谢谢你,你太棒了!