我知道我们不能将聚合函数用于矩阵中的过滤器。
这是AdventureWorks的情况。我有三个级别:
- 类别
- 子类别
- 产品
和 1 个 Calc_Member:
=With MEMBER Calc_Member as [Measures].[Internet Average Sales Amount]
实际上:
[Measures].[Internet Average Sales Amount]=
[Measures].[Internet Sales Amount]/[Measures].[Internet Order Count]
我希望层次结构中的每个级别都有不同的聚合。对于子类别和产品,公式Calc_Member
就像我之前提到的:
[Measures].[Internet Average Sales Amount]
但是对于类别级别,我想要相关子类别的平均值:
WITH MEMBER Calc_Member AS
Average(existing [Product].[Subcategory].[Subcategory].members
, [Measures].[Internet Average Sales Amount])
在分析服务中,这工作正常,但我在基于此数据集的报告服务中有一个报告:
- 类别
- 亚类
- 产品
- Calc_member
在 ssrs 中,我使用具有三个行组的矩阵,并为每个组添加总计。对于类别级别 1,希望在 ssrs 中使用聚合函数(使用在分析服务中定义的 Formlula)并且它再次工作正常。
但是,如果我想对某个成员(例如类别、子类别、产品)使用过滤器,则会引发此错误:
不能在包含任何过滤器的报表中使用聚合函数“聚合”
这个错误也是可以接受的,但我不明白的是:如果我在 Matrix1 中使用聚合函数并且在 Matrix2 中使用过滤器,它也会抛出错误。
为什么?