【问题标题】:SQL SSRS 2012 Subqueries and parametersSQL SSRS 2012 子查询和参数
【发布时间】:2016-09-02 17:58:31
【问题描述】:

我在 2 台服务器上有 2 个数据库。我有一个生成一堆数据的主要报告,1 个字段与第二个服务器数据库相关。我有一个从第一个获取参数的子报告,它是什么并吐出结果。工作正常。

问题是主报告的每一行都会发生这种情况。因此,假设我们在执行后在主报告中结束了三行。我有 3 组来自子报表的数据,它们都很好而且很整洁,但我无法得到总计,因为子报表不相互交流,而且由于它们是子报表,我似乎无法引用它的数据主要报告。

那么我该如何做到这一点,或者在 1 个报告中使用 2 个数据集,将执行的参数传递到第 2 个数据集并像子查询一样获得结果。或者,我还没有想出其他方法?有人在某处提到过使用带有第二个数据集/查询的详细信息行,但我似乎无法弄清楚它是否准确。

总而言之,您执行报告,它会获取按日期分组的内容列表,该组附加了一个子查询,该子查询使用该列表从第二个服务器数据库获取数据,然后从子查询中汇总这些行如何?

感谢任何帮助,甚至可能使用 1 个查询,但是我必须在 SQL 中链接我尚未完成的 2 个服务器。

【问题讨论】:

  • 是什么阻止了您链接两个服务器?
  • 您是否绝对需要将其拆分为两个报告?是什么阻止您在一份报告中拥有所有内容?

标签: sql reporting-services parameters subreport


【解决方案1】:

如果您无法链接两台服务器,这可能是最好的选择(但并非总是如此;如果您需要来自非常大的表的少量结果数据,这将是一个坏主意) ,我建议您在主报表中使用一个包含表格总计的数据集,该数据集要么只返回一行,因此您可以使用以下表达式获取相关总计:

=first(Fields!Total1.Value, "TotalsDataset")

或者您可以拥有多个具有 ID/Key 列的行,您可以将其链接到表中的分组,然后您可以从中使用:

=lookup(Fields!GroupKey.Value
       ,Fields!GroupForeignKey.Value
       ,Fields!GroupTotal.Value
       ,"TotalsDataset"
       )

【讨论】:

    猜你喜欢
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多