我有一个带有内部连接的嵌套查询,它返回给定“软件”的多条记录,但我需要将结果压缩在一行中......(输出已附加)对于一个软件,您会看到多条带有字段的记录使用“已解决”和“未解决”,我需要将其压缩为一行,分别显示已解决-已解决-未解决...例如。但有时,同一列会有两个或多个“已解决”记录。我想创建一个新列,如 SPPA2 或 WCS2 等...如果发生这种情况,并将同一列中每条记录的日期组合为“已解决”或“未解决”我是新手,所以试图让我的头脑围绕逻辑。
SELECT * FROM
(SELECT act.Vendor + ' ' + act.[Application Name] + ' ' + act.Version as "Software name"
,act.srmNumber as SRM#
,ssd.DateAssign
,IIF(ssd.DateResolv IS NOT NULL AND ssd.EntryText LIKE '%Step 1%' AND ssd.TargetUnitID = 48, 'Resolved', 'Not Resolved') as SPPA
,IIF(ssd.DateResolv IS NOT NULL AND ssd.EntryText LIKE '%Step 2%' AND ssd.TargetUnitID = 39, 'Resolved', 'Not Resolved') as WCS
,IIF(ssd.DateResolv IS NOT NULL AND ssd.EntryText LIKE '%Step 3%' AND ssd.TargetUnitID = 738, 'Resolved', 'Not Resolved') as SAM
FROM [SAMI_Main].dbo.vw_SAM_Software_Deployment AS ssd INNER JOIN [SAMI_Main].dbo.ACT_Inventory AS act ON act.srmNumber = RIGHT(ssd.callID,7)) AS T1
WHERE t1.SPPA = 'Resolved' OR t1.WCS = 'Resolved' OR t1.SAM = 'Resolved'
;