9

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

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

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

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

4

5 回答 5

6

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

于 2008-09-17T13:34:51.020 回答
4

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

于 2008-08-30T04:23:30.237 回答
3

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

于 2009-03-04T17:43:26.623 回答
2

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

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

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

于 2008-08-29T21:51:31.927 回答
1

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

于 2008-09-17T05:23:45.897 回答