仅检索与列表或其子集匹配的记录的SQL查询
我正在分析从我们的SCCM服务器添加/删除程序数据,需要一些查询帮助 数据已从SCCM中检索并清理,因此我只剩下我感兴趣的实际应用程序列表。常用应用程序/安全更新/运行时等已被过滤掉 我需要定义一个SQL查询,只有当它们有一个或多个由列表定义的应用程序时,它才会给我一个计算机及其应用程序的列表 e、 g 我需要检索具有以下任何或所有应用程序的所有计算机:仅检索与列表或其子集匹配的记录的SQL查询,sql,sql-server,Sql,Sql Server,我正在分析从我们的SCCM服务器添加/删除程序数据,需要一些查询帮助 数据已从SCCM中检索并清理,因此我只剩下我感兴趣的实际应用程序列表。常用应用程序/安全更新/运行时等已被过滤掉 我需要定义一个SQL查询,只有当它们有一个或多个由列表定义的应用程序时,它才会给我一个计算机及其应用程序的列表 e、 g 我需要检索具有以下任何或所有应用程序的所有计算机: Microsoft Office WebEx Java Runtime 1.6_33 如果您需要排除具有不在该列表中的应用程序的计算机,则应
Microsoft Office
WebEx
Java Runtime 1.6_33
如果您需要排除具有不在该列表中的应用程序的计算机,则应为我提供WKS001
和WKS003
:
SELECT DISTINCT t1.Computer
FROM Table AS t1
LEFT OUTER JOIN Table AS t2 ON t1.Computer = t2.Computer
AND t2.Application NOT IN ('Microsoft Office','WebEx','Java Runtime 1.6_33')
WHERE t1.Application IN ('Microsoft Office','WebEx','Java Runtime 1.6_33')
AND t2.Computer IS NULL;
如果需要排除具有不在该列表中的应用程序的计算机:
SELECT DISTINCT t1.Computer
FROM Table AS t1
LEFT OUTER JOIN Table AS t2 ON t1.Computer = t2.Computer
AND t2.Application NOT IN ('Microsoft Office','WebEx','Java Runtime 1.6_33')
WHERE t1.Application IN ('Microsoft Office','WebEx','Java Runtime 1.6_33')
AND t2.Computer IS NULL;
其他的答案并不能带回计算机的应用程序。试试这个:
SELECT
computer
,application
FROM
TABLENAME
WHERE
computer IN
(
SELECT
computer
FROM
TABLENAME
WHERE
application IN
(
'Microsoft Office'
,'WebEx'
,'Java Runtime 1.6_33'
)
)
AND comptuer NOT IN
(
SELECT
computer
FROM
TABLENAME
WHERE
application NOT IN
(
'Microsoft Office'
,'WebEx'
,'Java Runtime 1.6_33'
)
)
其他的答案并不能带回计算机的应用程序。试试这个:
SELECT
computer
,application
FROM
TABLENAME
WHERE
computer IN
(
SELECT
computer
FROM
TABLENAME
WHERE
application IN
(
'Microsoft Office'
,'WebEx'
,'Java Runtime 1.6_33'
)
)
AND comptuer NOT IN
(
SELECT
computer
FROM
TABLENAME
WHERE
application NOT IN
(
'Microsoft Office'
,'WebEx'
,'Java Runtime 1.6_33'
)
)
因此,您排除了
WKS002
和WSK004
,因为这些计算机的目标应用程序超过了3个?是的,我应该这样写:)所以您排除了WKS002
和WSK004
,因为这些计算机的目标应用程序超过了3个?是的,我应该这样写:)