我在报告服务中有一份报告。在此报告中,我显示了前 N 个值。但我的总计显示的是所有值的总和。
现在我得到这样的东西。这里 N = 2
+-------+------+-------------+
| Area |ID | Count |
+-------+------+-------------+
| - A | | 4 |
| | a1 | 1 |
| | b1 | 1 |
| | c1 | 1 |
| | d1 | 1 |
| | | |
| - B | | 3 |
| | a2 | 1 |
| | b2 | 1 |
| | c2 | 1 |
| | | |
|Grand | | 10 |
|Total | | |
+-------+------+-------------+
正确的总计应该是 7 而不是 10。A 和 B 是切换项(可以扩展和收缩)
如何使用 Top N 过滤器显示正确的总计?
我还想在报告中使用过滤器,而不是在 SQL 查询中。
您应该在数据集上使用过滤器。过滤报表对象本身只会关闭项目(例如行)的可见性。项目/行本身仍然是组的一部分,并将用于计算。
我找到了解决问题的方法。正如 Ido 所说,我在研究数据集。我正在使用分析立方体。因此,在这个多维数据集中,我创建了一个命名集计算。
在本集中我使用了 TopCount() 函数。它过滤掉前 N 个值,其中 N 可以根据您的选择为整数。
所以本例中最终的命名集是:-
TopCount([Dim Area].[Area].[Area], 2, ([Measures].[Count]))
这将为您提供前 N 个过滤值的总计。
确保您的报告过滤器针对的是整个 Tablix,而不仅仅是一个组。这将导致总列根据 Tablix 中显示的内容正确过滤。