SSRS - Group_Concat Эквивалент, используя выражение? - PullRequest
2 голосов
/ 02 августа 2010

Можно ли использовать выражения в службах Sql Server Reporting для объединения всех значений столбца в группе?Я пытаюсь выполнить функцию MySQL group_concat, но в отчете (не в запросе).

Пример.Я хочу сделать эти данные:

Group 1  Value
Test
         A
         B
Test 2
         C
         D

Посмотрите это в отчете:

Group 1 Value
test    A, B
test 2  C, D

1 Ответ

5 голосов
/ 02 августа 2010

попробуйте что-то вроде этого (работает на SQL Server 2005 и выше):

set nocount on;
declare @t table (id int, name varchar(20), x char(1))
insert into @t (id, name, x)
select 1,'test1', 'a' union
select 1,'test1', 'b' union
select 1,'test1', 'c' union
select 2,'test2', 'a' union
select 2,'test2', 'c' union
select 3,'test3', 'b' union
select 3,'test3', 'c' 
SET NOCOUNT OFF

SELECT p1.id, p1.name,
          stuff(
                   (SELECT
                        ', ' + x
                        FROM @t p2
                        WHERE p2.id=p1.id
                        ORDER BY name, x
                        FOR XML PATH('') 
                   )
                   ,1,2, ''
               ) AS p3
      FROM @t p1
     GROUP BY 
        id, name

ВЫХОД:

id          name                 p3
----------- -------------------- ---------
1           test1                a, b, c
2           test2                a, c
3           test3                b, c

(3 row(s) affected)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...