Подзапрос XML Path с Group BY, вызывающий совокупную ошибку - PullRequest
0 голосов
/ 30 июня 2018

У меня есть запрос ниже, и я действительно застрял в том, как я могу получить возвращенные результаты и избежать ошибки ниже.

Сообщение 144, Уровень 15, Состояние 1, Строка 40 Невозможно использовать агрегат или подзапрос в выражении, используемом для группы по списку предложения GROUP BY.

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, 
       Count(*) AS Value2 
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' 
GROUP  BY 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'') 

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете использовать подзапрос / 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...