Я не видел часть о заказе.Я надеюсь, что это работает сейчас.
DECLARE @t TABLE (Response_ID INT,[order] INT, [part label] VARCHAR(25), [Answer text] VARCHAR(15), [Answer label] VARCHAR(3))
INSERT @t VALUES (124587,6 , 'It was not clear' , NULL , 'Yes')
INSERT @t VALUES (124587,6 , 'Did not Understand' , Null , 'Yes' )
INSERT @t VALUES (124589,6 , 'Other (Please specify):','Not enough' , 'Yes')
INSERT @t VALUES (124563,1 , NULL ,'Satisfied?' , 'Yes')
INSERT @t VALUES (124583,11, 'Not frequent' , NULL , 'Yes')
INSERT @t VALUES (125687,2 , NULL ,'Resolved?' , 'NO' )
SET ARITHABORT ON
;WITH x AS (
SELECT CASE WHEN [order] = 11 THEN 6 ELSE [order] END [order], response_id, COALESCE(CASE WHEN [part label] = 'Other (Please specify):' THEN [Answer text] ELSE [part label] end ,[Answer label]) [Part label]
FROM @t
)
SELECT response_id, STUFF((
SELECT ',' + [Part label]
FROM x t1
WHERE t1.response_id = x.response_id and t1.[order] = x.[order]
for xml path(''), type
).value('.', 'varchar(max)'), 1, 1, '') [Part label] FROM x
GROUP BY response_id, [order]
Результат:
response_id Part label
----------- -------------------------------------
124563 Yes
124583 Not frequent
124587 It was not clear,Did not Undersstand
124589 Not enough
125687 NO