如何在SSRS中组合多个结果集?

时间:2008-08-29 21:17:26

标签: reporting-services

在SSRS中组合来自不同数据源的结果集的最佳方法是什么?

在我的特定示例中,我需要编写一个报告,从SQL Server中提取数据并将其与来自DB2数据库的另一组数据相结合。最后,我需要将这些单独的数据集合在一起,因此我有一个组合数据集,其中两个源的数据组合在同一行上。 (如果两个表都来自同一个SQL DB,则像内连接一样)。我知道你不能在SSRS 2005中“开箱即用”。我不喜欢将数据拉到我的SQL盒上的临时表中,因为用户需要能够按需运行此报告似乎不得不使用SSIS将数据按需提供到表中,这将很慢并且很难管理多个用户同时尝试获取报告。那里还有其他更优雅的解决方案吗?

我知道下面提到的链接服务器解决方案在技术上可行,但由于某些原因,我们的DBA根本不允许我们使用链接服务器。

我知道您可以向报表添加两个不同的数据集,但是,我需要能够将它们连接在一起。有人对如何最好地完成这个有任何想法吗?

5 个答案:

答案 0 :(得分:6)

我们必须做类似的事情(即来自不同服务器的内部联接2数据源)。我相信最好的方法是编写自己的自定义数据扩展。这并不是很困难,它会让你有能力做到这一点以及更多。

答案 1 :(得分:4)

您可以在DB2服务器中将DB2数据库添加为链接服务器,并在sql中的视图/ sproc中加入这两个表。我已经做到了,这并不难,你会实时获得数据。

答案 2 :(得分:3)

您可以创建一个直接访问数据库的链接服务器,或者如果您不想在工作时间内压缩数据库,则可以创建一个作业来复制您需要的数据。

答案 3 :(得分:2)

SSRS 2005允许您为报告提供多个数据集。每个数据集可以引用不同的数据源,一个可以来自SQL DB另一个可以是ODBC源等。

在Visual Studio的报表设计器视图中,转到“数据”选项卡,然后添加指向不同数据库的新数据源。完成后,在为每个元素设计报告时,您必须明确指定数据来自哪个数据集。

如果以上操作不起作用,您可以编写托管代码,请参阅http://msdn.microsoft.com/en-us/msdntv/cc540036.aspx以获取更多有用的信息和视频。

答案 4 :(得分:1)

您可以将MSSQL表和DB2表附加到Jet数据库,并将报表绑定到Jet数据库。我不知道Jet的单线程性质的含义,或者将多少工作委托给后备存储。