我知道我们不能对矩阵中的过滤器使用聚合函数。
这是 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])
在分析服务中,这工作正常,但我有一个基于此数据集的报告服务报告:
在 ssrs 中,我使用一个包含三个行组的矩阵,并为每个组添加总数。对于类别级别 1,想要在 ssrs 中使用聚合函数(使用在分析服务中定义的 Formlula)并且它再次工作正常。
但是如果我想对某个成员使用过滤器(例如类别、子类别、产品)
它抛出这个错误:
The aggregate function "Aggregate" cannot be used in a report that contains any filters
这个错误也是可以接受的,但我不理解的是:如果我在 Matrix1 中使用聚合函数并且在 Matrix2 中使用过滤器,它也会抛出错误。
为什么?
最佳答案
您可以将聚合加入数据集,然后将其用作过滤器吗?
(显然我需要 50 声望才能发表评论)
例如:
SELECT item, quantity, aggregateQuantity
FROM TABLE T1
LEFT JOIN (SELECT item, SUM(Quantity) AS aggregateQuantity FROM TABLE) T2
ON T1.item = T2.item
关于reporting-services - 聚合函数 "Aggregate"不能在包含任何过滤器的报表中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390658/