SQL Server Reporting Services 2008 中的列和行分组

Posted

技术标签:

【中文标题】SQL Server Reporting Services 2008 中的列和行分组【英文标题】:Column and Row grouping in SQL Server Reporting Services 2008 【发布时间】:2011-04-11 07:11:13 【问题描述】:

这是我需要填充为报告的期望结果,其中 xx 是人数。

我有一个表,其中包含以下字段:

----------
table1
----------
id
state
year(as Quarter)
gender

我需要根据 id 确定计数并填充为报告。年份就像 20081、20082..20084(季度)。

我已经使用这个查询创建了一个数据集:

SELECT STATE,GENDER,YEAR,COUNT(*)
FROM TABLE 1
GROUP BY STATE,GENDER,YEAR

从这个查询中我可以填充结果

ex: ca, m , 20081,3
    ny, f , 20091,4

从上面的查询中,我可以填充计数并使用 group by(row) state(in s-s-rs)。

我需要按(列)分组。根据我得到的性别和年份。

    如何获取性别列并使其具有男性和女性列?

    是否需要像传递一样创建多个数据集

    其中性别 = 'M' 或性别 = 'F'

    这样我就可以有两个数据集,一个用于男性,一个用于女性?否则,有什么方法可以像枢轴一样从性别字段分组?

    我应该像为男性 2008、女性 2009 创建多个数据集一样单独填充结果,还是有什么方法可以使用 s-s-rS 矩阵表和列分组对单个数据集进行分组?

    我应该在我的查询级别解决它还是 s-s-rS 中的任何功能可以解决这个问题?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您的 SQL 查询看起来不错,但我会使用 left 语句删除季度:

select state, gender, left(year,4) as [Year], count(ID) as N
from table1
group by state, gender, left([year],4)

那么你有一个矩阵的经典案例。使用报表向导创建一个新报表,选择“矩阵”,然后拖动字段:

行:状态

列:年份、性别

详情:否

这应该为您提供所需的矩阵。然后将文本框的表达式替换为来自

的 Gender
=Fields!gender.Value

=IIF(Fields!gender.Value="M", "Male", "Female")

祝你好运。

【讨论】:

以上是关于SQL Server Reporting Services 2008 中的列和行分组的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 安装 Reporting Services 目录错误

向 SQL Server Reporting Services 报表添加交替行颜色

Reporting Services SQL Server 2005 文件共享错误

SQL Server Reporting Services显示XML文档错误中禁止的DTD

SQL Server Reporting Services 2005 超链接值?

如何在 SQL Server Reporting Services 2008 中复制报表