If you just want the server names that do not exist in a list of collections, here you go:
Left Join vs. Inner Join doesn’t really matter on this query, but if SCCM inventory doesn’t report properly sometimes numbers can be skewed depending on the joins.
select
distinct sys.resourceid,
sys.name0,
OSYS.Caption0
from v_R_System SYS
Left JOIN v_GS_OPERATING_SYSTEM OSYS on SYS.ResourceID= OSYS.ResourceID
where OSYS.Caption0 like '%Server%'
and sys.ResourceID not in
(
select distinct ResourceID from v_FullCollectionMembership where CollectionID in ('XXX00050','XXX00055')
)
order by sys.name0
From: [email protected] [mailto:[email protected]] On Behalf Of [email protected]
Sent: Tuesday, May 28, 2013 2:56 PM
To: [email protected]
Subject: [mssms] Help with SQL Query Servers not in X, Y, Z collections
I am trying to find servers not in a specific set of collections. I have tried the query below but it gives me a list of every collections that servers are not members of. Can anyone assist me with a query that provides a list of all servers that do not belong to a list of collections.
Here's what I have tried.
select sys.resourceid,FCM.CollectionID, FCM.Name, OSYS.Caption0 AS [Operating System],cc.CollectionName
from v_R_System SYS
INNER JOINv_GS_OPERATING_SYSTEM OSYS on SYS.ResourceID= OSYS.ResourceID
INNER JOINv_FullCollectionMembership FCM ON SYS.ResourceID = FCM.ResourceID
INNER JOIN Collectionscc ON fcm.CollectionID = cc.SiteID
where OSYS.Caption0 like'%Server%' and sys.ResourceID not in
(select ResourceID fromv_FullCollectionMembership where CollectionID in ('FYA0038C', 'FYA00061', 'FYA0038D',
'FYA00062', 'FYA002E1','FYA002E3', 'FYA002EA', 'FYA006B8', 'FYA006B9', 'FYA006BA', 'FYA006BB', 'FYA006AE', 'FYA006AF','FYA006B0', 'FYA006B1', 'FYA0086F', 'FYA00870'))
order by CollectionID

