我的查询返回以下结果(使用soem示例数据):
STUID FirstName LastName DeptID CourseRequested
1 xxxx yyyy 2353 Algebra
1 xxxx yyyy 2353 Trignometry
1 xxxx yyyy 2356 Biology
1 xxxx yyyy 2356 Chesmistry
这对所有学生来说都是这样的。因此,学生可以在一个部门申请多门课程。
现在,我希望我的报告看起来像这样:
2353 2356
1 xxxx yyyyy algebra Biology
1 xxxx yyyy Trignometry Chemistry
所以,我在StuID,Fname和LName上使用了一个带有行组的矩阵。 DepartmentID上的列组和详细信息上的CourseName。
但是,结果集只显示了第一行的“代数和生物学”。它没有重复第二套课程。我不需要重复第二行的StuID,Fname和Lname。
我不知道我在做什么。请帮助我。如果有其他方法而不是使用矩阵,请告诉我。 那么,我必须使用子报告或表吗?
请帮帮我。
答案 0 :(得分:0)
您的现有输出按StuID,Fname,LName和DepartmentID分组。
对于这些的每个组合(在示例数据中),您有多个CourseRequested。因此,报告返回每个组合的第一个值。
要根据需要格式化交叉表,需要添加另一个行分组条件,以将不同的CourseRequested值拆分为单独的行。我建议你在sql查询中按行号或等级执行此操作 - 假设您使用SQLServer作为数据源,请将以下列添加到select语句中:
dense_rank() over (partition by StuID, Fname, LName, DepartmentID
order by CourseRequested) as RN
- 然后将RN添加到交叉表中的行分组条件,输出应根据需要进行格式化。