У меня есть таблица TableA с полями: [intIdEntidad], [intIdEjercicio], [idTipoGrupoCons]. ТаблицаA выглядит как idTipoGrupoCons = 16 это изображение введите описание изображения здесь
Я пытаюсь использовать функцию STUFF, чтобы показать столбец intIdEjercicio, разделенный комой, что-то вроде этого; введите описание изображения здесь
Это запрос, который я использую для получения результата на изображении выше:
SELECT DISTINCT o.idTipoGrupoCons, o.intIdEntidad, ejercicios= STUFF((
SELECT ', ' + CONVERT(VARCHAR,a.intIdEjercicio)
FROM dbo.[tbEntidades_Privadas_InfoAdicionalGrupo] AS a
WHERE a.idTipoGrupoCons = 16
FOR XML PATH, TYPE).value(N'.[1]', N'varchar(max)'), 1, 2, '')
FROM [tbEntidades_Privadas_InfoAdicionalGrupo] AS o
JOIN tbEntidades_Privadas p On O.intIdEntidad = p.intIdEntidad
WHERE o.idTipoGrupoCons = 16
Результат не верный, потому что я выполняю это запрос для idTipoGrupoCons = 16
SELECT [idTipoGrupoCons], [intIdEntidad],[intIdEjercicio]
FROM [tbEntidades_Privadas_InfoAdicionalGrupo] A
WHERE A.idTipoGrupoCons = 16
В результате это введите описание изображения здесь
Это означает, что для intIdEntidad = 50 intIdEjercicio только 7, а для intIdEntidad = 45 intIdEjercicio = 2 и 4
Я предполагаю, что проблема в том, что мне нужно добавить подзапрос или функцию в STUFF или во внешнее WHERE, чтобы каждый раз добавлять условие в intIdEntidad для вызова функции STUFF.
Я читал об использовании CROSS APPLY и, возможно, его можно использовать для решения проблемы