如何使用 s-s-rS 中的聚合函数过滤表?

Posted

技术标签:

【中文标题】如何使用 s-s-rS 中的聚合函数过滤表?【英文标题】:How can I filter a table using an aggregate function in s-s-rS? 【发布时间】:2013-11-05 12:20:11 【问题描述】:

我有一个数据集,其中包含 2 个事件的数据。数据集包括提前期(每个订单下达事件日期之前的周数)。

我正在尝试在 tablex 过滤器中使用以下内容:

Expression: lead_time
Operator: <=
Value: =Max(IIF(Fields!performance_code.Value = Parameters!vc_performance_name.Value, Fields!lead_time.Value, -100))

当我尝试时出现错误:tablix 的 FilterValue 包含一个聚合函数。聚合函数不能用于数据集过滤器或数据区域过滤器。

我可以将我想要的过滤器应用于详细信息“行组”,它会正确隐藏我不想要的行,但它们会继续包含在总数中。

有什么方法可以完全删除它们吗?

示例数据

performance_code, lead_time, amt
1, -10, 100
1, -5, 100
1, -3, 10
1, -1, 1000
2, -9, 50
2, -4, 100

My Parameters!vc_performance_name.Value 在此实例中为 2,因此 MAX 值应为 -4。

在英语中,这基本上意味着我们距离活动日期还有 4 周的时间,我只想查看性能 1/2 的数据,提前期为 -4 或更短......

输出类似于

performance_code, lead_time, amt
1, -10, 100
1, -5, 100
2, -9, 50
2, -4, 100

【问题讨论】:

您能否为不同的参数选择添加一些示例数据和预期结果?只需几行 - 足以显示问题。我只是很难在没有更多上下文的情况下翻译上面的要求和表达式。 我添加了一个示例。有用吗? 我并没有真正按照你的例子来回答,但为什么不过滤总数呢? Sum(iif(cond,fieldtosum,0), 范围) 我已经简化了数据,有很多列,以及我需要更新的各种组级别,而不仅仅是我希望能够更新的单个过滤器。 . 你当然可以,但是不得不做这些“变通办法”而不是我真正想做的事情似乎很疯狂......过滤数据:) 【参考方案1】:

不是直接回答您的问题,但您可以修改您的选择语句并添加一个单独的字段,其中包含每个性能代码的最长提前期,然后根据此值过滤数据

【讨论】:

以上是关于如何使用 s-s-rS 中的聚合函数过滤表?的主要内容,如果未能解决你的问题,请参考以下文章

嵌套聚合作为组过滤器 s-s-rS 的替代方案

如何在 s-s-rS 2008 中按聚合/计算列交互排序

如何根据 2 个数据源过滤 s-s-rS 报告

如何过滤掉s-s-rS中的参数值

如何使 s-s-rs 矩阵中的列不可见

如何在单个查询中使用联接和聚合函数更新表中的多行