【问题标题】:How to display data from two databases in RDL report?如何在 RDL 报告中显示来自两个数据库的数据?
【发布时间】:2009-08-09 09:12:52
【问题描述】:

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

【问题讨论】:

    标签: rdl


    【解决方案1】:

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

    如果它们位于同一台服务器上或一台服务器链接到另一台服务器,您可以从一个数据集中引用多个数据库。例如,如果您在同一台服务器上拥有两个数据库(公司、客户数据),那么

    
    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 将两个数据库中的表提取到一个公共数据库中,或者安排在夜间运行或在白天定期运行。

    【讨论】:

      【解决方案2】:

      我使用 rdlc 中的子报表做了类似的事情。我不确定是否可以在 rdl 中完成,但在 rdlc 中,每个子报告实际上都是使用自己的数据源报告的。 最好的祝福, 约旦

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多