加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reporting-services – 聚合函数“Aggregate”不能在包含任何过

发布时间:2020-12-14 05:00:53 所属栏目:百科 来源:网络整理
导读:我知道我们不能在矩阵中使用聚合函数作为过滤器. 这是AdventureWorks中的情况.我有三个级别: 类别 子类别 产品 和1个Calc_Member: =With MEMBER Calc_Member as [Measures].[Internet Average Sales Amount] 实际上: [Measures].[Internet Average Sales
我知道我们不能在矩阵中使用聚合函数作为过滤器.

这是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])

在Analysis服务中,这可以正常工作,但我在基于此数据集的报告服务中有一个报告:

>类别
> subcaegory
>产品
> Calc_member

在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读