[英]SCCM / SQL Multiple values to one column
I have the SCCM Following SQL query that returns 1 IP address for each column, I wanted to collect all IPs for a single column (separated by semicolon ) so I don't have machine name duplicates.我有 SCCM Following SQL 查询,它为每列返回 1 IP 地址,我想收集单个列的所有 IP(以分号分隔),因此我没有重复的机器名称。 Any suggestions?有什么建议么?
the goal is to return目标是返回
ServerName IPAddress服务器名称 IP 地址
Server01 192.168.1.1;192.168.1.2;fe80::61d2:9748:f21f:d4f3 Server01 192.168.1.1;192.168.1.2;fe80::61d2:9748:f21f:d4f3
SELECT
DISTINCT(CPU.SystemName0) AS [ServerName],
IPA.IP_Addresses0 AS [IPAddress],
CS.Manufacturer0 AS [Manufacturer],
CS.Model0 AS [Model],
PCB.SerialNumber0 AS [SerialNumber],
PM.TotalPhysicalMemory0 AS [Memory]
FROM [dbo].[v_GS_PROCESSOR] CPU
LEFT OUTER JOIN dbo.v_GS_COMPUTER_SYSTEM CS
ON CS.ResourceID = CPU.ResourceID
LEFT OUTER JOIN dbo.v_GS_PC_BIOS PCB
ON CS.ResourceID = PCB.ResourceID
LEFT OUTER JOIN dbo.v_GS_X86_PC_MEMORY PM
ON CS.ResourceID = PM.ResourceID
LEFT OUTER JOIN dbo.v_RA_System_IPAddresses IPA
ON CS.ResourceID = IPA.ResourceID
GROUP BY
CPU.SystemName0,
IPA.IP_Addresses0,
CS.Manufacturer0,
CS.Model0,
PCB.SerialNumber0,
PM.TotalPhysicalMemory0
ORDER BY [ServerName] ASC
SELECT CONCAT(
CPU.SystemName0,
';',
min(IPA.IP_Addresses0),
';',
min(CS.Manufacturer0),
';',
min(CS.Model0),
';',
min(PCB.SerialNumber0),
';',
min(PM.TotalPhysicalMemory0))
FROM [dbo].[v_GS_PROCESSOR] CPU
LEFT OUTER JOIN dbo.v_GS_COMPUTER_SYSTEM CS
ON CS.ResourceID = CPU.ResourceID
LEFT OUTER JOIN dbo.v_GS_PC_BIOS PCB
ON CS.ResourceID = PCB.ResourceID
LEFT OUTER JOIN dbo.v_GS_X86_PC_MEMORY PM
ON CS.ResourceID = PM.ResourceID
LEFT OUTER JOIN dbo.v_RA_System_IPAddresses IPA
ON CS.ResourceID = IPA.ResourceID
GROUP BY CPU.SystemName0
ORDER BY CPU.SystemName0 ASC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.