Здесь вы go:
WITH cte AS (
SELECT 368519 AS Id, '243625378R' AS InternalRef, '492-90-113' AS ExternalRef, '1749MA' AS ComponentIdentifier
UNION ALL
SELECT 368519 AS Id, '243625378R' AS InternalRef, '492-90-114' AS ExternalRef, '1749MA' AS ComponentIdentifier
UNION ALL
SELECT 368519 AS Id, '(8200945715)' AS InternalRef, '(7807965)' AS ExternalRef, '1749MA' AS ComponentIdentifier)
SELECT
Id,
STUFF((SELECT ',' + InternalRef FROM cte FOR XML PATH ('')), 1, 1, ''),
STUFF((SELECT ',' + ExternalRef FROM cte FOR XML PATH ('')), 1, 1, ''),
ComponentIdentifier
FROM
cte
GROUP BY
Id,
ComponentIdentifier;
Предполагается, что cte
, выражение общей таблицы является выводом из вашего существующего запроса. Так что вы можете заключить это в выражение общей таблицы (заменив мой оператор UNION
), поместить во временную таблицу, в табличную переменную и т. Д. c.
Я также делаю некоторые предположения это может быть неправильно, но мой вывод совпадает с вашим:
Id (No column name) (No column name) ComponentIdentifier
368519 243625378R,243625378R,(8200945715) 492-90-113,492-90-114,(7807965) 1749MA