代码之家  ›  专栏  ›  技术社区  ›  Greg

SSRS-使用表达式的组\u Concat等价物?

  •  2
  • Greg  · 技术社区  · 15 年前

    例子。我想把这些数据:

    Group 1  Value
    Test
             A
             B
    Test 2
             C
             D
    

    在报告中可以看到:

    Group 1 Value
    test    A, B
    test 2  C, D
    
    1 回复  |  直到 15 年前
        1
  •  5
  •   KM.    15 年前

    尝试以下操作(适用于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)