GROUP_CONCAT в SQL Server ошибка

Ошибка: столбец "ReviewConsultants.ConsultantID" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Запрос:

select 
    R.ReviewID, 
    STUFF((select distinct ',' + FirstName 
           from Users 
           where UserID = RC.ConsultantID 
           FOR XML PATH ('')), 1, 1, '') AS consultantlist
from 
    [Reviews] R, [ReviewConsultants] RC 
where 
    R.ReviewID = RC.ReviewID  
group by 
    R.ReviewID;

В одном обзоре может быть один или несколько консультантов. Я пытаюсь получить консультантов для каждого обзора в столбце с разделением запятой.

Примечание: имена консультантов присутствуют в таблице пользователей.

Когда я пытаюсь выполнить вышеупомянутый запрос, я получаю выше ошибку. Любая помощь очень ценится!

1 ответ

В вашем случае вы могли бы использовать DISTINCT:

select DISTINCT R.ReviewID, STUFF((select distinct ','+FirstName 
                                   from Users 
                                   where UserID=RC.ConsultantID 
                                  FOR XML PATH ('')), 1, 1, '') 
                             AS consultantlist
from [Reviews] R
JOIN [ReviewConsultants] RC 
  ON R.ReviewID=RC.ReviewID;

Пожалуйста, избегайте старого синтаксиса соединения.

Другие вопросы по тегам