2009-08-09 135 views
1

我正在创建一个报表,它将从一个数据库(公司和每个公司的客户列表)以及其他数据库(每个客户的项目清单)连接到它的一些数据中获取一些数据。看起来,显示的数据只能使用一个DataSource,并且DataSource是连接到一个数据库的数据。我做了一些Google搜索并阅读了关于子报表的内容,我尝试了这个解决方案,但报表看起来不一样(例如我有列Company,Customer和Item,子报表在哪里,子报表包含两列,我不喜欢他们被显示在一列中......)。子报告真的只是显示跨数据库数据的方法吗?如何在RDL报表中显示来自两个数据库的数据?

回答

3

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

如果一个数据库位于同一台服务器上,或者一台服务器与另一台服务器相连,则可以从一个数据集引用多个数据库。例如,如果你在同一台服务器上的两个数据库(企业,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将表格从两个数据库中提取到公共数据库中,然后再运行报告,可能安排在一整夜或定期运行。

+0

谢谢!我没有在任何地方找到这些信息 – agnieszka 2009-08-09 21:02:28

0

我已经在rdlc中使用子报告做了这样的事情。我不确定是否可以在rdl中完成,但是在rdlc中,每个子报告都是用它自己的DataSource报告的。 最好的问候, Iordan

相关问题