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

jer*_*ero 4 sql-server dataset reporting-services ssrs-2008 ssrs-grouping

替代文字

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

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

----------
table1
----------
id
state
year(as Quarter)
gender
Run Code Online (Sandbox Code Playgroud)

我需要从id确定计数并填充为报告.这一年就像2008年1月,2008年2月...... 2004年(季度).

我使用此查询创建了一个数据集:

SELECT STATE,GENDER,YEAR,COUNT(*)
FROM TABLE 1
GROUP BY STATE,GENDER,YEAR
Run Code Online (Sandbox Code Playgroud)

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

ex: ca, m , 20081,3
    ny, f , 20091,4
Run Code Online (Sandbox Code Playgroud)

从上面的查询中我可以填充计数并使用group by(row)状态(在ssrs中).

我需要分组(列).从我得到的性别和年份.

  1. 如何获取列性别并使其具有男性和女性列?
  2. 我是否需要创建多个数据集,如传递

    性别='M'或性别='F'

    所以我可以有两个数据集,一个用于男性,一个用于女性?否则,有没有什么方法可以像Gender一样从Gender字段中分组?

  3. 我应该单独填充结果,例如为Male 2008,Female 2009创建多个数据集,还是有任何方法可以使用SSRS Matrix表和列分组对单个数据集进行分组?

  4. 我应该在我的查询级别解决它还是SSRS中有任何可以解决此问题的功能?

任何帮助,将不胜感激.

Fil*_*let 5

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

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

然后你有一个Matrix的经典案例.使用报告向导创建新报告,选择"矩阵",然后拖动字段:

行:状态

专栏:年份,性别

细节:N

这应该为您提供所需的矩阵.然后用Gender from替换文本框的表达式

=Fields!gender.Value
Run Code Online (Sandbox Code Playgroud)

=IIF(Fields!gender.Value="M", "Male", "Female")
Run Code Online (Sandbox Code Playgroud)

祝好运.