2016-04-25 4 views
0

У меня есть два набора данных:SSRS: Использование табликса с несколькими Dataset

Мой первый набор данных (студенты) выглядит следующим образом:

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:

Student Имя | ID
Джек Луис | 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

Возможная дубликата [Отчетность услуги: Регистрация все поля на dataset] (http://stackoverflow.com/questions/10997770/reporting-services-join-all-field-on-a-dataset) – Farside

+0

Лучше всего использовать хранимую процедуру в наборе данных и позволить SQL сделать это более эффективно чем поиск. Поэтому просто используйте один набор данных, который вызывает хранимую процедуру, которая объединяет две таблицы. –

ответ

0

Я думаю, что это может быть решена с помощью LOOKUP функции. Функция LOOKUP объединяет несколько наборов данных, используя общее поле в задействованных наборах данных.

Создайте вкладку и установите для свойства DataSetName свой второй набор данных.

enter image description here

Перетащите поля на столбцы, которые вы хотите показать. Для столбца Имя студента использовать следующее выражение:

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

В приведенном выше выражении заменить DataSet21 фактическим именем вашего первого набора данных.

Это будет анонсировать что-то вроде этого:

enter image description here


UPDATE: Группировка по строке заголовка.

Добавить табличку и установить свой второй набор данных в DataSetName. Добавьте поля Exam и Note в соответствующие столбцы.

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") 

Теперь выберите экзамен и Note строку и добавить строку выше вне группы.

enter image description here

Тип Exam и Note в соответствующей ячейке выше [Exam] и [Note] полей.

Выберите три ячейки в первой строке, щелкните правой кнопкой мыши и выберите Merge Cells.

Это будет анонсировать что-то вроде этого:

enter image description here

Если вы хотите удалить первую пустую строку, вы можете сделать это плавно.

Дайте мне знать, если это поможет.

+0

Спасибо г-ну alejandro zuleta –

+0

спасибо Mr alejandro zuleta решено моя проблема :) –

+0

@YounesAKIL, если мой ответ решит вашу проблему, вы можете выбрать его как правильный, щелкнув по левой стороне в правильном символе. [Как принимает ответ работает] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

0

Спасибо Mr Alejandro zuleta

, но я хочу, чтобы результат, как это в том же Tablix (используя groupin по имени)

Studant Name:Jack Luis 

Exam | Note 
Java | 15 
Php | 14 


Studant Name:Adam Bob 

Exam | Note 
Java | 12 
Php | 13 
+0

Это не ответ, который вы должны удалить и изменить свой вопрос, чтобы включить это. Проверьте мое обновление. –

Смежные вопросы