Как объединить несколько результирующих наборов в SSRS?

каков наилучший способ объединения наборов результатов из разрозненных источников данных в SSRS?

в моем конкретном примере мне нужно написать отчет, который извлекает данные из SQL Server и объединяет их с другим набором данных из базы данных DB2. В конце концов, мне нужно объединить эти отдельные наборы данных вместе, так что у меня есть один набор данных с данными из обоих источников на одни и те же строки. (Как внутреннее соединение, если обе таблицы исходили из одной и той же БД SQL). Я знаю что вы не можете сделать это "из коробки" в SSRS 2005. Я не в восторге от необходимости вытаскивать данные во временную таблицу на моем поле SQL, потому что пользователи должны иметь возможность запускать этот отчет по требованию, и похоже, что использование служб SSIS для получения данных в таблицу по требованию будет медленным и трудным для управления с несколькими пользователями, пытающимися получить отчет одновременно. Есть ли другие, более элегантные решения?

Я знаю, что решение связанного сервера, упомянутое ниже будет технически работать, однако, по какой-то причине наши DBAs просто не позволят нам использовать связанные серверы.

Я знаю, что вы можете добавить два разных набора данных в отчет, однако мне нужно иметь возможность объединить их вместе. У кого-нибудь есть идеи, как лучше всего этого добиться?

5 ответов


мы должны были сделать что-то подобное (т. е. внутреннее соединение 2 источников данные с разных серверов). Я считаю, что лучший способ-написать собственное Пользовательское расширение данных. Это не очень сложно и это даст вам возможность делать это и дальше.


вы можете добавить базу данных DB2 в качестве связанного сервера в sql server и просто соединить две таблицы в представлении/sproc в sql. Я сделал это, это не сложно, и вы получите данные в режиме реального времени.


вы можете создать связанный сервер, который будет напрямую обращаться к базе данных, или, если вы не хотите напрягать базу данных в рабочее время, вы можете создать задание для копирования необходимых данных за ночь.


SSRS 2005 позволяет иметь несколько наборов данных для отчета. Каждый набор данных может ссылаться на другой источник данных, один может исходить из БД SQL, другой может быть источником ODBC и т. д.

в представлении конструктора отчетов в Visual Studio перейдите на вкладку "Данные" и добавьте новые источники данных, указывающие на разные базы данных. Как только вы закончите, при разработке отчета для каждого элемента вы должны явно указать, из какого набора данных поступают данные.

Если вышеизложенное не РАБОТА, Вы можете написать управляемый код, обратитесь кhttp://msdn.microsoft.com/en-us/msdntv/cc540036.aspx для получения более полезной информации и видео.


вы можете присоединить таблицы MSSQL и DB2 к базе данных Jet и привязать отчет к базе данных Jet. Я не знаю последствий однопоточного характера Jet или сколько работы будет делегировано резервным хранилищам.