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