2016-04-25 25 views
0

我有兩個數據集:SSRS:使用表矩陣與多個數據集

我的第一個數據集(學生)看起來是這樣的:

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
Jack Luis | 1
Adam Bob | 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 
+0

[Reporting Services的可能的複製:加入在所有領域數據集(http://stackoverflow.com/questions/10997770/reporting-services-join-all-field-on-a-dataset) – Farside

+0

它是使用存儲過程的數據集,讓SQL更有效地做到這一點的最佳實踐比查找。因此,只需使用一個數據集即可調用將兩個表放在一起的存儲過程。 –

回答

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


UPDATE:分組由標題行。

添加一個tablix並將您的第二個數據集設置爲DataSetName屬性。將ExamNote字段添加到相應的列。

enter image description here

添加父行組。

enter image description here

在Tablix組窗口選擇添加組頭複選框,並使用下面的表達式:

=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

如果要刪除第一個空行,你可以做到這一點順利。

讓我知道這是否有幫助。

+0

謝謝主席亞歷杭德羅·蘇萊塔 –

+0

謝謝主席亞歷杭德羅·蘇萊塔它解決我的問題:) –

+0

@YounesAKIL,如果我的回答解決您的問題,您可以通過在正確的符號點擊左側選擇它是正確的。[如何接受一個答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

0

謝謝主席亞歷蘇萊塔

,但我想在同一個的Tablix這樣的結果(使用groupin通過名稱)

Studant Name:Jack Luis 

Exam | Note 
Java | 15 
Php | 14 


Studant Name:Adam Bob 

Exam | Note 
Java | 12 
Php | 13 
+0

這不是一個答案,你應該刪除它並編輯你的問題,包括這個。檢查我的更新。 –