abi*_*ari 5 aggregate matrix filter reporting-services ssrs-2008
我知道我们不能在矩阵中使用聚合函数作为过滤器.
这是AdventureWorks中的情况.我有三个级别:
和1个Calc_Member:
=With MEMBER Calc_Member as [Measures].[Internet Average Sales Amount]
Run Code Online (Sandbox Code Playgroud)
实际上:
[Measures].[Internet Average Sales Amount]=
[Measures].[Internet Sales Amount]/[Measures].[Internet Order Count]
Run Code Online (Sandbox Code Playgroud)
我希望层次结构中的每个级别都有不同的聚合.对于子类别和产品,folmula Calc_Member
就像我之前提到的那样:
[Measures].[Internet Average Sales Amount]
Run Code Online (Sandbox Code Playgroud)
但是对于类别级别我想要相关子类别的平均值:
WITH MEMBER Calc_Member AS
Average(existing [Product].[Subcategory].[Subcategory].members
, [Measures].[Internet Average Sales Amount])
Run Code Online (Sandbox Code Playgroud)
在Analysis服务中,这可以正常工作,但我在基于此数据集的报告服务中有一个报告:
在ssrs中,我使用具有三个行组的矩阵,并为每个组添加总计.对于类别1,想要在ssrs中使用聚合函数(使用在分析服务中定义的Formlula),并且它再次正常工作.
但是,如果我想在某个成员(例如,类别,子类别,产品)上使用过滤器,则会抛出此错误:
聚合函数"Aggregate"不能在包含任何过滤器的报表中使用
而且这个错误也是可以接受的,但是我不喜欢的是:如果我在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
Run Code Online (Sandbox Code Playgroud)