例如,我有如下测试数据。
|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 |
我可以通过在学生列上添加列组来创建结果,但不确定下一个是什么。
这是我使用的测试配置。
| A | B | C |
|Class |Score|Class |Score|Class |Score|
|English |90 | | | | |
|Computer |78 | | |
|Math |88 | | |
|Math |55 |
|Computer |86 |
|English |64 |
答案 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
单元格,因为我不想在此处显示它。
这里最后一个重要步骤是隐藏细节行。这是结果。