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

在我的特定示例中,我需要编写一个报告,从 SQL Server 提取数据并将其与来自 DB2 数据库的另一组数据组合起来。最后,我需要将这些单独的数据集连接在一起,这样我就有了一个组合数据集,其中来自两个源的数据组合到同一行上。(如果两个表都来自同一个 SQL 数据库,则类似于内部联接)。我知道您无法在 SSRS 2005 中“开箱即用”执行此操作。我对必须将数据拉入 SQL 框上的临时表并不感到兴奋,因为用户需要能够按需运行此报告,并且似乎必须使用 SSIS 按需将数据放入表中多个用户试图同时获取报告,速度缓慢且难以管理。还有其他更优雅的解决方案吗?

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

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

有帮助吗?

解决方案

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

其他提示

您可以将 DB2 数据库添加为 sql server 中的链接服务器,然后将两个表连接到 sql 中的视图/存储过程中。我已经做到了,这并不难,而且您将实时获取数据。

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top