Reporting Services 2005:分组到列中

时间:2011-06-07 13:10:29

标签: reporting-services

从查询中,我得到以下结果:

Machine 1, Product A, 1 pal  
Machine 1, Product B, 2 pal  
Machine 1, Product C, 3 pal  
Machine 2, Product D, 2 pal  
Machine 2, Product E, 2 pal  
Machine 3, Product F, 1 pal  

我想创建一个如下所示的报告:

Machine 1  |  Machine 2  |  Machine 3 
Product A  |  Product D  |  Product F  
1 pal      |    2 pal    | 1 pal  
Product B  |  Product E  |   
2 pal      |  2 pal  
Product C
3 pal

我知道上面的格式很糟糕,但它提出了一个想法。我想这与New group in New column中的问题相同,但使用其他技术。有人能帮忙吗?非常感谢,谢谢!

2 个答案:

答案 0 :(得分:1)

以下是使用SSRS Matrix报表项和SQL Server ROW_NUMBER函数实现此目的的一种可能方法。以下示例显示了如何完成此操作。该示例使用 SSRS 2005 SQL Server 2008 R2 数据库。

分步流程: SSRS 2005

  1. 创建了一个名为dbo.GroupColumns的表,表示您提供的数据,如屏幕截图# 1 所示。在SQL Scripts部分下提供了表的脚本。

  2. 创建了屏幕截图# 2 中显示的查询,该查询将用于创建SSRS数据集。查询在 SSRS数据集查询部分下提供。屏幕截图# 2 显示Management Studio中的查询输出。该查询使用ROW_NUMBER()函数指定按MachineMachine排序的给定Product内的序号。

  3. 在SSRS报告中,放置Matrix报告项目。请参阅屏幕截图# 3

  4. 将数据集中的RowRankMachineProduct值拖放到Matrix上,如屏幕截图# 4 所示。

  5. 右键单击包含“产品”值的单元格,然后选择添加行,如屏幕截图# 5 所示。将添加新的第二列以及新行。

  6. 将数据集中的Units列拖放到Matrix上,如屏幕截图# 6 所示。

  7. 第二个矩阵列的宽度属性设置为0 (zero),因为我们不想显示该列。即使将其设置为零,该值也将更改为0.03125 in。屏幕截图# 7 在应用一些格式和着色后显示Matrix报表项。

  8. 希望有所帮助。

    SQL脚本:

    CREATE TABLE [dbo].[GroupColumns](
        [Id] [int] IDENTITY(1,1) NOT NULL,
        [Machine] [varchar](10) NULL,
        [Product] [varchar](10) NULL,
        [Units] [varchar](10) NULL,
     CONSTRAINT [PK_GroupColumns] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
    GO
    

    SSRS数据集查询:

    SELECT  ROW_NUMBER() OVER(
                PARTITION BY    Machine 
                ORDER BY        Machine
                            ,   Product
            ) AS RowRank
        ,   Id
        ,   Machine
        ,   Product
        ,   Units 
    FROM    dbo.GroupColumns
    

    屏幕截图#1:

    1

    屏幕截图#2:

    2

    屏幕截图#3:

    3

    屏幕截图#4:

    4

    屏幕截图#5:

    5

    屏幕截图#6:

    6

    屏幕截图#7:

    7

    屏幕截图#8:

    8

答案 1 :(得分:0)

如果我正确理解了您的问题,您可以使用Matrix控件实现此目的。只需将机器字段放在列组中,然后将产品和pal字段放在详细信息组中。您可以在表达式中使用“= 1”存根行组。