|
jnelson993 -> RE: Special Report (9/24/2008 2:57:33 PM)
|
Well, if you just want to identify people that also have logged into a desktop, then this will do it (it won't show you WHICH desktops, just show you those people who do. SELECT DISTINCT SYS.Netbios_Name0, SYS.User_Name0, CASE WHEN EXISTS (SELECT 1 FROM dbo.v_GS_SYSTEM_ENCLOSURE WHERE ChassisTypes0 NOT IN ('8','9','10','11','14') AND ResourceID IN (SELECT ResourceID FROM v_R_System WHERE User_name0 = SYS.User_Name0)) THEN 1 ELSE 0 END AS HasDesktop, ENC.SerialNumber0, SYS.Client0, SYS.Active0, SYS.Obsolete0, PROC2.Manufacturer0, PROC2.Model0, OPSYS.Caption0 AS "Operating System", OPSYS.CSDVersion0, ENC.ChassisTypes0, OPSYS.LastBootUpTime0 FROM v_FullCollectionMembership fcm JOIN v_R_System SYS ON fcm.ResourceID = SYS.ResourceID JOIN v_GS_OPERATING_SYSTEM OPSYS ON SYS.ResourceID = OPSYS.ResourceID JOIN v_GS_COMPUTER_SYSTEM PROC2 ON SYS.ResourceID = PROC2.ResourceID INNER JOIN v_GS_SYSTEM_ENCLOSURE ENC ON SYS.ResourceID = ENC.ResourceId WHERE ENC.ChassisTypes0 IN ('8','9','10','11','14') AND fcm.CollectionID = @CollID ORDER BY SYS.Netbios_Name0 Now, if you also need to list the machines here too, then you gotta get a little funky. It's not pretty because you're looking up computers based on user_name0 which is not indexed and is pretty slow. This may timeout if you have a ton of records. Took 2:30 in our environment (~200K clients). I'm sure it could be optimized more, but I don't have that kind of time right now: SELECT DISTINCT SYS.Netbios_Name0, SYS.User_Name0, REPLACE( (SELECT Netbios_Name0 + ', ' FROM dbo.v_R_System WHERE user_name0 = sys.user_name0 AND resourceID NOT IN (SELECT ResourceID FROM dbo.v_GS_System_Enclosure WHERE ChassisTypes0 IN ('8','9','10','11','14')) ORDER BY Netbios_Name0 FOR XML PATH(''))+'..', ', ..', '') AS Desktops, ENC.SerialNumber0, SYS.Client0, SYS.Active0, SYS.Obsolete0, PROC2.Manufacturer0, PROC2.Model0, OPSYS.Caption0 AS "Operating System", OPSYS.CSDVersion0, ENC.ChassisTypes0, OPSYS.LastBootUpTime0 FROM v_FullCollectionMembership fcm JOIN v_R_System SYS ON fcm.ResourceID = SYS.ResourceID JOIN v_GS_OPERATING_SYSTEM OPSYS ON SYS.ResourceID = OPSYS.ResourceID JOIN v_GS_COMPUTER_SYSTEM PROC2 ON SYS.ResourceID = PROC2.ResourceID INNER JOIN v_GS_SYSTEM_ENCLOSURE ENC ON SYS.ResourceID = ENC.ResourceId WHERE ENC.ChassisTypes0 IN ('8','9','10','11','14') AND fcm.CollectionID = @CollID ORDER BY SYS.Netbios_Name0
|
|
|
|