Sql server 由于导致聚合错误而导致具有组的XML路径子查询

Sql server 由于导致聚合错误而导致具有组的XML路径子查询,sql-server,tsql,Sql Server,Tsql,我有下面的查询,我真的被困在如何返回结果和避免下面的错误上 味精144,15级,状态1,第40行 无法在group by子句的group by列表所用的表达式中使用聚合或子查询 您可以使用子查询/cte: WITH cte AS ( SELECT Stuff((SELECT ', ' + typename FROM visittype VD LEFT JOIN lookup.type D

我有下面的查询,我真的被困在如何返回结果和避免下面的错误上

味精144,15级,状态1,第40行 无法在group by子句的group by列表所用的表达式中使用聚合或子查询


您可以使用子查询/cte:

WITH cte AS (
     SELECT Stuff((SELECT ', ' + typename 
              FROM   visittype VD 
              LEFT JOIN lookup.type D 
                ON VD.typeid = D.typeid 
              WHERE  visitid = V.visitid 
              ORDER  BY D.typename 
              FOR xml path(''), type).value('text()[1]', 'NVARCHAR(MAX)'), 1, 1, 
       N'') AS Value1
    FROM   visit V 
    WHERE V.startdate >= '2018-03-31 14:00:00.0000000 +00:00' 
      AND V.enddate <= '2018-06-30 13:59:59.9990000 +00:00' 
)
SELECT  Value1, COUNT(*) AS Value2
FROM cte
GROUP BY Value1;
WITH cte AS (
     SELECT Stuff((SELECT ', ' + typename 
              FROM   visittype VD 
              LEFT JOIN lookup.type D 
                ON VD.typeid = D.typeid 
              WHERE  visitid = V.visitid 
              ORDER  BY D.typename 
              FOR xml path(''), type).value('text()[1]', 'NVARCHAR(MAX)'), 1, 1, 
       N'') AS Value1
    FROM   visit V 
    WHERE V.startdate >= '2018-03-31 14:00:00.0000000 +00:00' 
      AND V.enddate <= '2018-06-30 13:59:59.9990000 +00:00' 
)
SELECT  Value1, COUNT(*) AS Value2
FROM cte
GROUP BY Value1;