这是一个针对所有您的SQL头脑的问题。我正在从SCCM数据库中加入几个表。我正在尝试加入多个表。这是我的查询:
SELECT v_R_System.Name0,
v_GS_SYSTEM_ENCLOSURE.ChassisTypes0,
v_GS_SYSTEM_ENCLOSURE.Manufacturer0,
v_GS_SYSTEM_ENCLOSURE.Model0,
v_R_System.Operating_System_Name_and0,
v_R_User.User_Name0,
v_UsersPrimaryMachines.UserResourceID ,
v_R_User.Full_User_Name0,
v_R_System.Is_Virtual_Machine0,
v_GS_X86_PC_MEMORY.TotalPhysicalMemory0,
v_RA_System_IPAddresses.IP_Addresses0
FROM v_R_System
LEFT JOIN v_GS_SYSTEM_ENCLOSURE
ON v_R_System.ResourceID = v_GS_SYSTEM_ENCLOSURE.ResourceID
LEFT JOIN v_RA_System_IPAddresses
ON v_R_System.ResourceID = v_RA_System_IPAddresses.ResourceID
LEFT JOIN v_GS_X86_PC_MEMORY
ON v_R_System.ResourceID = v_GS_X86_PC_MEMORY.ResourceID
LEFT JOIN v_UsersPrimaryMachines
ON v_R_System.ResourceID = v_UsersPrimaryMachines.MachineID
LEFT JOIN v_R_User
ON v_UsersPrimaryMachines.UserResourceID = v_R_User.ResourceID
WHERE (v_RA_System_IPAddresses.IP_Addresses0 NOT LIKE '%:%')
在我的结果中,我得到了同一台计算机多次列出的同一台计算机。我希望为计算机列出的每个用户都能看到此信息。所以,我的问题是我希望所有计算机至少列出一次。与UsersPrimaryMachine表中的RecsourceID匹配的计算机应显示列出的v_R_User表中具有匹配的UserResourceID的主用户数量。我猜我需要将JOIN更改为INNER JOIN。但是,一旦我这样做,我只会列出2台CLIENT计算机,每台计算机2次。
Name0 ChassisTypes0 Manufacturer0 Model0 Operating_System_Name_and0 User_Name0 UserResourceID Full_User_Name0 Is_Virtual_Machine0 TotalPhysicalMemory0 IP_Addresses0
SCCM-2K12 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 4193780 192.168.91.15
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) puser 2063597571 Paul User 1 1048052 192.168.91.103
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) juser 2063597572 John User 1 1048052 192.168.91.103
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) NULL 2080374786 NULL 1 1048052 192.168.91.103
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) NULL 2080374787 NULL 1 1048052 192.168.91.103
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) NULL 2080374789 NULL 1 1048052 192.168.91.103
WIN8-CLIENT1 1 No Enclosure NULL Microsoft Windows NT Workstation 6.2 (Tablet Edition) NULL 2080374790 NULL 1 1048052 192.168.91.103
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) jdoe 2063597570 Jane Doe 1 2096628 192.168.91.100
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) puser 2063597571 Paul User 1 2096628 192.168.91.100
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) NULL 2080374786 NULL 1 2096628 192.168.91.100
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) NULL 2080374787 NULL 1 2096628 192.168.91.100
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) NULL 2080374789 NULL 1 2096628 192.168.91.100
WIN81-CLIENT2 1 No Enclosure NULL Microsoft Windows NT Workstation 6.3 (Tablet Edition) NULL 2080374790 NULL 1 2096628 192.168.91.100
SCSM-2K12 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 4193780 192.168.91.12
SCSM-SSP 1 No Enclosure NULL Microsoft Windows NT Server 6.1 NULL NULL NULL 1 2096632 192.168.91.17
MAIL 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 6290932 192.168.91.11
SCOM-2K12-DB 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 4193780 192.168.91.19
SCOM-2K12 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 2096628 192.168.91.18
SCORCH-2K12 1 No Enclosure NULL Microsoft Windows NT Server 6.2 NULL NULL NULL 1 2096628 192.168.91.21
SCDW-2K12 NULL NULL NULL Microsoft Windows NT Server 6.2 NULL NULL NULL NULL NULL 192.168.91.13
SHARE-2K8 NULL NULL NULL Microsoft Windows NT Server 6.1 NULL NULL NULL NULL NULL 192.168.91.16
IIS-2K12 NULL NULL NULL Microsoft Windows NT Server 6.2 NULL NULL NULL NULL NULL 192.168.91.14
谁能弄清楚这一点,将是我的英雄!
好的。昨晚我又戳了一些。我最终得到了一个子选择,该选择使我得到了想要的结果。谢谢您的帮助。这是我最终得到的结果:
SELECT
S.Name0,
S.Operating_System_Name_and0,
S.Is_Virtual_Machine0,
US.Full_User_Name0,
US.User_Name0,
v_GS_SYSTEM_ENCLOSURE.ChassisTypes0,
v_GS_SYSTEM_ENCLOSURE.Manufacturer0,
v_GS_SYSTEM_ENCLOSURE.Model0,
v_GS_X86_PC_MEMORY.TotalPhysicalMemory0,
v_RA_System_IPAddresses.IP_Addresses0
FROM v_R_System S
LEFT JOIN v_GS_SYSTEM_ENCLOSURE
ON S.ResourceID = v_GS_SYSTEM_ENCLOSURE.ResourceID
LEFT JOIN v_RA_System_IPAddresses
ON S.ResourceID = v_RA_System_IPAddresses.ResourceID
LEFT JOIN v_GS_X86_PC_MEMORY
ON S.ResourceID = v_GS_X86_PC_MEMORY.ResourceID
LEFT JOIN
(SELECT
U.User_Name0,
UPM.UserResourceID,
UPM.MachineID,
U.Full_User_Name0
FROM v_UsersPrimaryMachines UPM
JOIN v_R_User U
ON UPM.UserResourceID = U.ResourceID) US
ON S.ResourceID = US.MachineID
WHERE (v_RA_System_IPAddresses.IP_Addresses0 NOT LIKE '%:%')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句