Я думаю, что это может быть решена с помощью LOOKUP
функции. Функция LOOKUP
объединяет несколько наборов данных, используя общее поле в задействованных наборах данных.
Создайте вкладку и установите для свойства DataSetName
свой второй набор данных.
Перетащите поля на столбцы, которые вы хотите показать. Для столбца Имя студента использовать следующее выражение:
=Lookup(Fields!Student_id.Value,Fields!Student_id.Value,Fields!StudentName.Value,"DataSet21")
В приведенном выше выражении заменить DataSet21
фактическим именем вашего первого набора данных.
Это будет анонсировать что-то вроде этого:
UPDATE: Группировка по строке заголовка.
Добавить табличку и установить свой второй набор данных в DataSetName
. Добавьте поля Exam
и Note
в соответствующие столбцы.
Добавить родительскую строку группы.
В окне группы Tablix выберите заголовок флажок Добавить группу и использовать следующее выражение:
=Lookup(Fields!Student_id.Value,
Fields!Student_id.Value,Fields!StudentName.Value,"DataSet21")
Удалить первый столбец, созданный предыдущей настройки группировки.
В камере выше Exam
использовать следующее выражение:
="Student Name: " &
Lookup(Fields!Student_id.Value,Fields!Student_id.Value,Fields!StudentName.Value,"FirstDataSet")
Теперь выберите экзамен и Note строку и добавить строку выше вне группы.
Тип Exam
и Note
в соответствующей ячейке выше [Exam]
и [Note]
полей.
Выберите три ячейки в первой строке, щелкните правой кнопкой мыши и выберите Merge Cells
.
Это будет анонсировать что-то вроде этого:
Если вы хотите удалить первую пустую строку, вы можете сделать это плавно.
Дайте мне знать, если это поможет.
Возможная дубликата [Отчетность услуги: Регистрация все поля на dataset] (http://stackoverflow.com/questions/10997770/reporting-services-join-all-field-on-a-dataset) – Farside
Лучше всего использовать хранимую процедуру в наборе данных и позволить SQL сделать это более эффективно чем поиск. Поэтому просто используйте один набор данных, который вызывает хранимую процедуру, которая объединяет две таблицы. –