簡體   English   中英

SCCM硬件報告[如果有多個值(對於所有列),則將它們組合在一起)如何?

[英]SCCM Hardware Reports [if there are multiple values (for all columns) then combine them together] How?

我需要為每列組合多個(行)值。 這段代碼返回我需要的所有數據,但是,如果一列中有兩個不同的值,它將輸出兩行。 我想通過在它們之間的一行中輸入逗號來顯示這一點。 我想對每一列都這樣做。 因為如果一台計算機的2列中有2個不同的值,則一台計算機將顯示4行。

SELECT DISTINCT
    NA.DNSHostName0 as 'Computer Name',
    CS.domain0 as 'Domain', 
    NA.MACAddress0 as 'MAC Address',
    NA.IPAddress0 as 'IP Address',
    CS.UserName0 as 'User',
    SE.SerialNumber0 as 'System Enclosure serial', 
    CS.Manufacturer0 as 'Manufacturer', 
    CS.Model0 as 'Model', 
    OS.Caption0 as 'OS', 
    RAA.SMS_Assigned_Sites0 as 'Site', 
    v_GS_DESKTOP_MONITOR.Name0 as 'Monitor',
    v_GS_VIDEO_CONTROLLER.Name0 as 'Video Card',
    v_GS_VIDEO_CONTROLLER.AdapterRAM0 as 'Video Memory Hafızası',
    RAM.TotalPhysicalMemory0 as 'Total Memory', 
    SUM(ISNULL(LDisk.Size0,'0')) as 'Hardrive Size', 
    SUM(ISNULL(LDisk.FreeSpace0,'0')) AS 'Free Space', 
    CPU.MaxClockSpeed0 as 'Max CPU Speed', 
    CPU.Name0 as 'CPU Model'
FROM
    v_GS_COMPUTER_SYSTEM CS 
RIGHT JOIN
    v_GS_PC_BIOS BIOS ON BIOS.ResourceID = CS.ResourceID
RIGHT JOIN
    v_GS_SYSTEM SYS ON SYS.ResourceID = CS.ResourceID
LEFT JOIN
    v_R_User USR ON USR.Unique_User_Name0 = CS.UserName0
RIGHT JOIN
    v_GS_OPERATING_SYSTEM OS ON OS.ResourceID = CS.ResourceID  
RIGHT JOIN
    v_RA_System_SMSAssignedSites RAA ON RAA.ResourceID = CS.ResourceID 
RIGHT JOIN
    V_GS_X86_PC_MEMORY RAM ON RAM.ResourceID = CS.ResourceID 
RIGHT JOIN
    v_GS_Logical_Disk LDisk ON LDisk.ResourceID = CS.ResourceID 
RIGHT JOIN
    v_GS_Processor CPU ON CPU.ResourceID = CS.ResourceID    
FULL JOIN 
    v_GS_SYSTEM_ENCLOSURE SE ON SE.ResourceID = CS.ResourceID
LEFT JOIN
    v_GS_NETWORK_ADAPTER_CONFIGUR NA ON NA.ResourceID = CS.ResourceID
LEFT JOIN
    v_GS_DESKTOP_MONITOR ON v_GS_DESKTOP_MONITOR.ResourceID = CS.ResourceID
LEFT JOIN
    v_GS_VIDEO_CONTROLLER ON v_GS_VIDEO_CONTROLLER.ResourceID = CS.ResourceID
WHERE
    LDisk.DriveType0 = 3 AND NA.DNSHostName0  <> 'Null'
GROUP BY 
    NA.DNSHostName0, CS.domain0,  CS.Username0,
    SE.SerialNumber0,  CS.Manufacturer0,  CS.Model0, 
    OS.Caption0, RAA.SMS_Assigned_Sites0, 
    RAM.TotalPhysicalMemory0, 
    CPU.MaxClockSpeed0, CPU.Name0, 
    NA.MACAddress0, NA.IPAddress0,
    v_GS_DESKTOP_MONITOR.Name0,
    v_GS_VIDEO_CONTROLLER.Name0,
    v_GS_VIDEO_CONTROLLER.AdapterRAM0
ORDER BY 
    NA.DNSHostName0

例如,客戶端有多個MAC地址和IP地址,那么我們可以使用以下查詢來滿足您的要求。

SELECT  distinct 
NA2.DNSHostName0 as 'Computer Name',
CS.domain0 as 'Domain', 
Macs = Stuff ((select ', ' + NA1.MACAddress0 from v_GS_NETWORK_ADAPTER_CONFIGUR as 
NA1 where NA1.ResourceID = NA2.ResourceID FOR XML PATH ('')) , 1, 1, ''),
IPs = Stuff ((select ', ' + NA1.IPAddress0 from v_GS_NETWORK_ADAPTER_CONFIGUR as NA1 
where NA1.ResourceID = NA2.ResourceID FOR XML PATH ('')) , 1, 1, ''),
CS.UserName0 as 'User',
SE.SerialNumber0 as 'System Enclosure serial', 
CS.Manufacturer0 as 'Manufacturer', 
CS.Model0 as 'model', 
OS.Caption0 as 'OS', 
RAA.SMS_Assigned_Sites0 as 'Site', 
v_GS_DESKTOP_MONITOR.Name0 as 'Monitor',
v_GS_VIDEO_CONTROLLER.Name0 as 'VGA Card',
v_GS_VIDEO_CONTROLLER.AdapterRAM0/1024 as 'VGA Memory',
RAM.TotalPhysicalMemory0/1024 as 'Total Memory', 
sum(isnull(LDisk.Size0,'0'))/1024 as 'Hardrive Size', 
sum(isnull(LDisk.FreeSpace0,'0'))/1024 AS 'Free Space', 
CPU.Name0 as 'CPU Model',
v_GS_DISK.Name0 as 'Disk Name',
v_GS_DISK.Model0 as 'Disk Model',
v_GS_DISK.Size0 as 'Disk Size',
v_GS_CDROM.MediaType0 as 'CD Media Type',
v_GS_CDROM.Name0 as 'CDRom Name'

from  
v_GS_COMPUTER_SYSTEM CS right join v_GS_PC_BIOS BIOS on BIOS.ResourceID = 
CS.ResourceID
right join v_GS_SYSTEM SYS on SYS.ResourceID = CS.ResourceID
left join v_R_User USR on USR.Unique_User_Name0 = CS.UserName0
right join v_GS_OPERATING_SYSTEM OS on OS.ResourceID = CS.ResourceID  
right join v_RA_System_SMSAssignedSites RAA on RAA.ResourceID = CS.ResourceID 
right join V_GS_X86_PC_MEMORY RAM on RAM.ResourceID = CS.ResourceID 
right join v_GS_Logical_Disk LDisk on LDisk.ResourceID = CS.ResourceID 
right join v_GS_Processor CPU on CPU.ResourceID = CS.ResourceID    
full join v_GS_SYSTEM_ENCLOSURE SE on SE.ResourceID = CS.ResourceID
left join v_GS_NETWORK_ADAPTER_CONFIGUR NA2 on NA2.ResourceID = CS.ResourceID
left join v_GS_DESKTOP_MONITOR on v_GS_DESKTOP_MONITOR.ResourceID = CS.ResourceID
left join v_GS_VIDEO_CONTROLLER on v_GS_VIDEO_CONTROLLER.ResourceID = CS.ResourceID
left join v_GS_DISK on v_GS_DISK.ResourceID = CS.ResourceID
left join v_GS_CDROM on v_GS_CDROM.ResourceID = CS.ResourceID

where NA2.DNSHostName0 = @variable


group by 
NA2.DNSHostName0,
CS.domain0, 
CS.Username0,
SE.SerialNumber0, 
CS.Manufacturer0, 
CS.Model0, 
OS.Caption0, 
RAA.SMS_Assigned_Sites0, 
RAM.TotalPhysicalMemory0,  
CPU.Name0, 
NA2.MACAddress0,
NA2.ResourceID,
v_GS_DESKTOP_MONITOR.Name0,
v_GS_VIDEO_CONTROLLER.Name0,
v_GS_VIDEO_CONTROLLER.AdapterRAM0,
v_GS_DISK.Name0,
v_GS_DISK.Model0,
v_GS_DISK.Size0,
v_GS_CDROM.MediaType0,
v_GS_CDROM.Name0



ORDER BY NA2.DNSHostName0

希望我的回答能對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM