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;
Пожалуйста, избегайте старого синтаксиса соединения.