集合函数“Aggregate”不能用在包含任何过滤器的报表中
问题描述:
我知道我们不能在矩阵中使用集合函数作为过滤器。集合函数“Aggregate”不能用在包含任何过滤器的报表中
这是在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
的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中使用过滤器,它也会抛出错误。
为什么?
答
您可以将聚集连接到数据集,然后将其用作过滤器吗? (显然我需要50的声誉评论)
例如:
SELECT item, quantity, aggregateQuantity
FROM TABLE T1
LEFT JOIN (SELECT item, SUM(Quantity) AS aggregateQuantity FROM TABLE) T2
ON T1.item = T2.item
这是很难理解你的问题原样。也许你可以编辑它并添加更多的代码示例,告诉我们你试过了什么,为什么它不起作用等等。按照现状,我们无法真正帮助你。 – Jeroen 2012-07-10 22:04:29
感谢您的编辑。我试图更新一些,希望没有改变意思。不过,这个问题有点难以理解 - 可能是语言障碍?也许别人可以看到发生了什么,并为你回答... – Jeroen 2012-07-11 21:55:52
嗨Jeroen非常感谢你的关注。忘记我以前的问题。请查看这个如果possible.put一个矩阵在ssrs中使用聚合函数。然后把另一个矩阵和使用过滤器,然后你可以看到错误谢谢。 – abianari 2012-07-12 04:02:03