0

错误:列“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;

一个评论可以有一个或多个顾问。我正在尝试将每个评论的顾问放在一个用逗号分隔的列中。

注意:顾问的名字出现在用户表中。

当我尝试运行上述查询时,我遇到了错误。非常感谢任何帮助!

4

1 回答 1

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;

请避免使用旧的连接语法。

于 2017-12-03T16:45:10.827 回答