SSRS:如何创建没有空白单元格的数据透视表结果?

时间:2014-09-01 08:51:35

标签: sql-server reporting-services

测试数据

例如,我有如下测试数据。

|Student    |Class     |Score|
|A          |English   |90   |
|B          |Computer  |78   |
|B          |Math      |88   |
|C          |Math      |55   |
|C          |Computer  |86   |
|C          |English   |64   |

您可以创建如下测试数据:

CREATE TABLE Test
([Student] varchar(1), [Class] varchar(8), [Score] int)
;

INSERT INTO Test
([Student], [Class], [Score])
VALUES
('A', 'English', 90),
('B', 'Computer', 78),
('B', 'Math', 88),
('C', 'Math', 55),
('C', 'Computer', 86),
('C', 'English', 64)
;

在SSRS中,使用简单查询创建新报告:

SELECT * FROM Test

预期结果

现在,我想在SSRS中显示如下结果。因此,数据由学生分组并列出所有课程和学生获得的分数。这可能吗?

|      A         |      B         |      C         |
|Class     |Score|Class     |Score|Class     |Score|
|English   |90   |Computer  |78   |Math      |55   |
                 |Math      |88   |Computer  |86   |
                                  |English   |64   |

当前状态

我可以通过在学生列上添加列组来创建结果,但不确定下一个是什么。

这是我使用的测试配置。

SSRS test settings

|      A         |      B         |      C         |
|Class     |Score|Class     |Score|Class     |Score|
|English   |90   |          |     |          |     |
                 |Computer  |78   |          |     |
                 |Math      |88   |          |     |
                                  |Math      |55   |
                                  |Computer  |86   |
                                  |English   |64   |

1 个答案:

答案 0 :(得分:0)

现在,我修好了自己。

首先,使用此查询添加新数据集。它有一个行号rn,按学生划分。

select *, ROW_NUMBER() OVER (PARTITION BY Student ORDER BY Class) AS rn FROM Test

然后,添加Student的列组,rn的行组和组标题。在行组标题中,使用fx =Min(Fields!Class.Value)& =Min(Fields!Score.Value)。清除rn单元格,因为我不想在此处显示它。

这里最后一个重要步骤是隐藏细节行。这是结果。

SSRS setup SSRS result