SSRS:使用具有多个数据集的Tablix

时间:2016-04-25 12:56:48

标签: sql-server-2008 reporting-services ssrs-2008

我有两个数据集:

我的第一个数据集(学生)看起来像这样:

Student_Name| ID
Jack Luis   | 1
Adam Bob    | 2

我的第二个数据集(考试)看起来像这样:

Student_ID  | Exam               | Note
1           | Java               | 15
1           | Php                | 14
2           | Java               | 12
2           | Php                | 13

我想在同一个Tablix中得到它:

学生姓名| ID
杰克路易斯| 1
亚当鲍勃| 2个

Student_ID | Student Name | Exam   | Note
1          |Jack Luis     | Java   | 15
1          |Jack Luis     | Php    | 14
2          |Adam Bob      | Java   | 12
2          |Adam Bob      | Php    | 13

2 个答案:

答案 0 :(得分:0)

我认为这可以使用LOOKUP函数来解决。 LOOKUP函数使用相关数据集中的公共字段连接多个数据集。

创建一个Tablix并将DataSetName属性设置为第二个数据集。

enter image description here

将字段拖放到要显示的列。对于“学生姓名”列,请使用以下表达式:

=Lookup(Fields!Student_id.Value,Fields!Student_id.Value,Fields!StudentName.Value,"DataSet21")
  

在上面的表达式中,用您的实际名称替换DataSet21   第一个数据集。

它会预览这样的东西:

enter image description here

更新:按标题行分组。

添加Tablix并在DataSetName属性中设置第二个数据集。将ExamNote字段添加到相应的列中。

enter image description here

添加父行组。

enter image description here

在Tablix组窗口中,选择Add group header复选框并使用以下表达式:

=Lookup(Fields!Student_id.Value,
Fields!Student_id.Value,Fields!StudentName.Value,"DataSet21")

enter image description here

删除先前分组设置创建的第一列。

enter image description here

Exam上方的单元格中,使用以下表达式:

="Student Name: " &
Lookup(Fields!Student_id.Value,Fields!Student_id.Value,Fields!StudentName.Value,"FirstDataSet")

现在选择“检查”和“注释”行,并在组外部添加一行。

enter image description here

ExamNote字段上方的相应单元格中输入[Exam][Note]

选择第一行中的三个单元格,右键单击它并选择Merge Cells

它会预览这样的东西:

enter image description here

如果要删除第一个空行,可以顺利完成。

如果有帮助,请告诉我。

答案 1 :(得分:0)

谢谢你先生 alejandro zuleta

但我希望在同一个Tablix中使用这样的结果(使用groupin By Name)

Studant Name:Jack Luis

Exam   | Note
Java   | 15
Php    | 14


Studant Name:Adam Bob

Exam   | Note
Java   | 12
Php    | 13