集合函数“Aggregate”不能用在包含任何过滤器的报表中

问题描述:

我知道我们不能在矩阵中使用集合函数作为过滤器。集合函数“Aggregate”不能用在包含任何过滤器的报表中

这是在AdventureWorks中的情况。我有三个层次:

  1. 类别
  2. 子目录
  3. 产品

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的folmula是正如我以前提到:

[Measures].[Internet Average Sales Amount] 

但对于类别级别我想相关的子类别的平均:

WITH MEMBER Calc_Member AS 
    Average(existing [Product].[Subcategory].[Subcategory].members 
    , [Measures].[Internet Average Sales Amount]) 

在分析服务能正常工作,但我有基于此数据集在Reporting Services的报告:

  • 类别
  • subcaegory
  • 产物
  • Calc_member

在我使用具有三个行组的矩阵,并添加总为每个组SSRS。对于类别级别1想要在ssrs中使用聚合函数(以使用在分析服务中定义的Formlula)并且再次正常工作。

但是,如果我想用一些成员(如类别,子类别,产品)上的过滤器 它抛出这个错误:

The aggregate function "Aggregate" cannot be used in a report that contains any filters

而这个错误是accepteable过,但我不undrestand是:如果我在Matrix1中使用聚合函数,并且在Matrix2中使用过滤器,它也会抛出错误。

为什么?

+1

这是很难理解你的问题原样。也许你可以编辑它并添加更多的代码示例,告诉我们你试过了什么,为什么它不起作用等等。按照现状,我们无法真正帮助你。 – Jeroen 2012-07-10 22:04:29

+0

感谢您的编辑。我试图更新一些,希望没有改变意思。不过,这个问题有点难以理解 - 可能是语言障碍?也许别人可以看到发生了什么,并为你回答... – Jeroen 2012-07-11 21:55:52

+0

嗨Jeroen非常感谢你的关注。忘记我以前的问题。请查看这个如果possible.put一个矩阵在ssrs中使用聚合函数。然后把另一个矩阵和使用过滤器,然后你可以看到错误谢谢。 – *ari 2012-07-12 04:02:03

您可以将聚集连接到数据集,然后将其用作过滤器吗? (显然我需要50的声誉评论)

例如:

SELECT item, quantity, aggregateQuantity 
FROM TABLE T1 
LEFT JOIN (SELECT item, SUM(Quantity) AS aggregateQuantity FROM TABLE) T2 
ON T1.item = T2.item