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

标签 reporting-services filter matrix ssrs-2008 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 的公式正如我之前提到的:
    [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/

    相关文章:

    visual-studio-2010 - 2008 年 Visual Studio 2010 中的商业智能项目(SSIS 和 SSRS)

    Wordpress Yoast Breadcrumb 代码 - 过滤器更改包装元素

    python - 在多个条件下的 For 循环中过滤 pandas DataFrame 的更快方法

    python - 如何使用索引向量从矩阵中提取元素?

    r - 无法从数据框中删除空白,因此无法找到均值

    c# - 如何在 rdlc 中的表标题顶部而不是左侧显示按列分组

    c# - 从 MS CRM 工作流事件调用 SQL Server Reporting Services

    reporting-services - 报告服务正确的项目对齐

    web-services - 这是WSS3.0 Web服务查询中的错误吗?

    c# - 我如何让一个类存储在一个二维数组 "aware"中它们的位置呢?