繁体   English   中英

SSRS 2012中的动态分组

[英]Dynamic Grouping in SSRS 2012

我正在开发具有以下参数的报告

RowGroupLevel1,
RowGroupLevel2,
ColumnGroupLevel1,
ColumnGroupLevel2,
ColumnGroupLevel3

行组包含类别,执行名称,客户名称(如字段)列组包含Year,Quarter,Month字段。
因此,我的要求与“行和列分组”中的“级别1”相同,其他字段是可选的。
例如:如果我选择如下
方案1:
RowGroupLevel1-类别
RowGroupLevel2-执行名称
ColumnGroupLevel1-年
ColumnGroupLevel2-Quaker
ColumnGroupLevel3-月

方案2:
RowGroupLevel1-类别
RowGroupLevel2-
ColumnGroupLevel1-年
ColumnGroupLevel2-月
ColumnGroupLevel3-

因此,按照上述方案,我可以如何动态地对报告进行分组。

请帮助我创建任何类型的SSRS报告。


提前致谢。 安吉·古萨尼(Ankit Gusani)

实现此目的最简单的方法是,首先编写查询,以将结果向前拉。

SQL Server查询

SELECT  DATEPART(WEEK,  Date_Column) AS [Weekly]
       ,DATEPART(MONTH, Date_Column) AS [Monthly]
       ,DATEPART(YEAR, Date_Column)  AS [Yearly]
       ,SUM(Some_Column)             AS Total
FROM Table_Name
GROUP BY DATEPART(MONTH, Date_Column) 
        ,DATEPART(WEEK,  Date_Column)
        ,DATEPART(YEAR, Date_Column)

SSRS报告

添加一个矩阵数据区域。 Total列拖放到DATA

创建一个Text类型为GROUP ON的参数,并提供值

1) Weekly
2) Monthly
3) Yearly

现在,在下面的“行ROW GROUPS窗格中,右键单击唯一可见的行组,然后转到“ GROUP ON GROUP PROPERTIES部分,将其放在下面的表达式中。

=SWITCH(
         Parameters!Groupby.Value = "Weekly",  Fields!Weekly.Value
        ,Parameters!Groupby.Value = "Monthly", Fields!Monthly.Value
        ,Parameters!Groupby.Value = "Yearly",  Fields!Yearly.Value
        )

在数据区域ROWS部分使用完全相同的表达式。

对于列名,您可以使用以下表达式...

=SWITCH(
         Parameters!Groupby.Value = "Weekly",  "Weekly"
        ,Parameters!Groupby.Value = "Monthly", "Monthly"
        ,Parameters!Groupby.Value = "Yearly",  "Yearly"
        )

而且你很好。

重要的提示

SSRS是用于数据表示的一种很酷的工具,但在数据处理方面却不那么酷,为了获得更好的性能,请执行各种更接近源(数据库,SQL Server)的数据操作。

所有演示材料都应在SSRS上处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM