【问题标题】:SSRS How to Divide row results by outside group row summarySSRS 如何按外部组行摘要划分行结果
【发布时间】:2021-09-29 19:01:55
【问题描述】:

我觉得这应该很容易,但我想不通。

[结果视图]

这在逻辑上是我认为应该起作用的:

=(ReportItems("CustCounts2").value/ReportItems("RowTotal2").value)

但是 RowTotal2 是一个外部组,不会渲染。

【问题讨论】:

  • 你能分享你的行组和列组吗(在主设计窗口下方)。还要扩展主要设计的屏幕截图,以便我们可以看到您的行组在哪里

标签: reporting-services ssrs-tablix divide


【解决方案1】:

看起来您正在使用矩阵,所以这是基于我认为您的数据的样子..

我用它来生成一些示例数据

我创建了一个数据集DataSet1,并将以下内容作为数据集的查询

DECLARE @t table(office varchar(10), EstimateStatus varchar(10), Counts int)

INSERT INTO @t VALUES
('Office A', 'Loss', 92),
('Office A', 'Win', 971),
('Office B', 'Loss', 50),
('Office B', 'Win', 500)

SELECT * FROM @t

然后我添加了一个矩阵,将 office 添加为行组,将 EstimateStatus 添加为列组,最后算作数据。然后我添加了行组和列组的总计。

最后我删除了生成的最后一列(因为这是一个总百分比列,您的设计中没有)。

为了清楚起见,我将行组重命名为 GrpOffice,如您所见

设计是这样的

在办公室级别的百分比列中,我使用了以下表达式

=SUM(Fields!Counts.Value)/SUM(Fields!Counts.Value, "GrpOffice")

这读取获取该行的计数总和(即使只有 1)并将其除以整个组 "GrpOffice" 的计数总和。请注意,此名称必须用引号括起来并且区分大小写。

对于总行,我使用了类似的表达式..

=Sum(Fields!Counts.Value) / Sum(Fields!Counts.Value, "DataSet1")

这读取,获取当前范围(在本例中为总列组)中的计数总和,然后除以称为 "DataSet1" 的整个数据集的计数总和

在这些单元格上使用p2 的格式进行整理,我们得到以下输出。

【讨论】:

  • 谢谢!我永远不会认为您需要合并实际的行组名称。
  • 没问题。这很值得一读,一旦你了解了范围,生活就会轻松一些。你不会浪费时间去尝试那些永远不会奏效的事情,并且经常会找到解决看似困难得多的问题的捷径。这有点罗嗦,但大约在页面的一半是解释事情的例子。docs.microsoft.com/en-us/sql/reporting-services/report-design/…
  • 我做了很多 SSRS 报告,所以这很有帮助。再次感谢艾伦。
猜你喜欢
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多