如何在RDL报告中显示来自两个数据库的数据?

时间:2009-08-09 09:12:52

标签: rdl

我正在创建一个报告,该报告将从一个数据库(公司和每个公司的客户列表)中获取一些数据,并从其他数据库(每个客户的项目列表)中连接一些数据。似乎显示的数据只能使用一个DataSource,而DataSource是与一个数据库的连接。我做了一些谷歌搜索和阅读有关子报告,我尝试了这个解决方案,但报告看起来不一样(例如我有列公司,客户和项目,子报告,子报告包含两列,我不喜欢它们将显示在一列......)。子报告真的只是显示跨数据库数据的方式吗?

2 个答案:

答案 0 :(得分:3)

是的,单个报表控件(表,列表等)只能显示来自一个数据集的数据。你确实有几个选择。

如果多个数据库位于同一服务器上,或者一个服务器链接到另一个数据集,则可以从单个数据集引用多个数据库。例如,如果您在同一台服务器上同时拥有两个数据库(company,customerdata),那么


Select co.CompanyName, cu.CustomerName, ci.CustomerItem1
From company.dbo.Companies co
      Inner Join company.dbo.Customers cu On cu.CompanyID = co.CompanyID
      Inner Join customerdata.dbo.CustomerItems ci On ci.CustomerID = cu.CostomerID

如果数据库是不同的服务器但已链接,那么您可以使用servername.databasename.schema.tablename来引用这些表。在这两种情况下,您都需要确保您使用的登录在双方都具有适当的权限。

或者,在运行报告之前,您可以使用SSIS将两个数据库中的表从一个数据库中拉出来,或者安排在一夜之间或在白天定期运行。

答案 1 :(得分:0)

我在rdlc中使用子报告做了这样的事情。如果可以在rdl中完成,但是在rdlc中,每个子报表都使用它自己的DataSource进行实际报告,我并不感到害羞。 最好的祝福, 约尔丹