SSRS 2008在表中为每个id动态添加列。

时间:2015-03-13 15:59:37

标签: sql-server-2008 dynamic reporting-services ssrs-2008 grouping

以下是我的数据集示例:

ID  Name    Date
DCMTest1    Planning    02-06-12
DCMTest1    Planning    01-09-13
DCMTest1    Planning    06-09-13
DCMTest2    Planning    03-08-11
DCMTest2    Planning    05-07-12

结果表必须动态添加列(列数未知)。以下是我希望报告中数据的示例:

ID          Planning    Planning    Planning
DCMTest1    02-06-12    01-09-13    06-09-13
DCMTest2    03-08-11    05-07-12    

我在ID(Project_nummer)上有一个行组,我试图以两种不同的方式获得我想要的结果。 我在Date上使用了一个列组标题,这导致每个不同日期的列分组(这显然是错误的):

结果1:

ID          Planning    Planning    Planning    Planning    Planning
DCMTest1    02-06-12    01-09-13    06-09-13        
DCMTest2                                        03-08-11    05-07-12

我在名称(计划)上尝试了一个列组,它给出了结果2:

结果2:

ID          Planning
DCMTest1    02-06-12
DCMTest2    03-08-11

结果2具有正确的启动,但不会动态添加列。我想念一个表达吗?

我还不允许上传图片,所以这里是SSRS分组的链接: SSRS grouping

感谢任何帮助。我正在使用MS SQL Server 2008和visual studio 9.0

2 个答案:

答案 0 :(得分:0)

我想到的是稍微改变您的查询以包括按ID分区的行号,然后是行号上的列组。在查询中的select子句中添加一条语句,如下所示:

Row_Number() OVER (Order by ID) as Col_group,

这会给你一个像这样的结果集:

    ID   Col_group     Name       Date
DCMTest1    1       Planning    02-06-12
DCMTest1    2       Planning    01-09-13
DCMTest1    3       Planning    06-09-13
DCMTest2    1       Planning    03-08-11
DCMTest2    2       Planning    05-07-12

然后像在结果1中一样创建一个列组,但使用新的Col_group列进行分组而不是日期。

答案 1 :(得分:-1)

如果您希望数据在报告服务中使用它,第一个数据集就可以了,您只需要使用矩阵对SSRS中的信息进行分组。