Редактировать - удаленные конечные пробелы в третьем столбце
Поскольку вы сказали, что суммированное поле не должно выглядеть красиво, попробуйте следующее:
SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2
Предполагается, что имя вашей таблицы называется MyTable. Этот запрос приводит к запятым в конце, но вы должны начать. Используя мою тестовую базу данных, это был вывод:
ID1 ID2 M1
1 1 5,8,
1 2 5,8,
2 3 10,11,
2 5 12,
Если вы хотите очистить его, это должно сработать (хотя сам запрос выглядит ужасно):
SELECT ID1, ID2, left(M1, len(M1) - 1) AS M1
FROM
(
SELECT M1.ID1, M1.ID2,
(
SELECT convert(nvarchar(50), ID3) + ','
FROM MyTable M2
WHERE M1.ID1 = M2.ID1 AND M1.ID2 = M2.ID2
FOR XML PATH('')
) M1
FROM MyTable M1
GROUP BY M1.ID1, M1.ID2
) CleanedUp