gpt4 book ai didi

reporting-services - 聚合函数 "Aggregate"不能在包含任何过滤器的报表中使用

转载 作者:行者123 更新时间:2023-12-03 17:56:03 25 4
gpt4 key购买 nike

我知道我们不能对矩阵中的过滤器使用聚合函数。

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

    在分析服务中,这工作正常,但我有一个基于此数据集的报告服务报告:
  • 类别
  • 子类别
  • 产品
  • 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

    关于reporting-services - 聚合函数 "Aggregate"不能在包含任何过滤器的报表中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390658/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com