【问题标题】:Reporting Services Aggregate not working for parent-child relationshipsReporting Services 聚合不适用于父子关系
【发布时间】:2010-10-28 04:18:21
【问题描述】:

我在分析服务维度中有一个父子属性关系,比如[Dim].[Child][Dim].[Parent] 的子属性,我有一个查询,它返回集合

UNION( [Dim].[Parent].Members * [Dim].[Child].Members, [Dim].[Parent].[ALL] * [Dim].[Child].Members )

在轴 1 上和轴 0 上的一些输出。在管理工作室中运行时查询工作正常。

现在我正在尝试在 Reporting Services 中制作一个图表,其中 x 轴为 [Dim].[Child],Y 轴为 Aggregate(some_output)。我希望在 x 轴上看到子成员,并为所有父母(在这种情况下只是一个)汇总输出,即从行 { [Dim].[Parent].[ALL], [Dim].[Child].&[TheChildID] } 获取的数据。如上所述,查询确实返回了包含正确数据的这一行。

但是,在这种情况下,Aggregate 函数返回 NULL。当使用父子属性并将子属性放在 X 轴上时,此行为始终存在。将子项放入 tablix 行并在列中添加聚合输出时也会发生同样的情况。报告服务器似乎知道聚合只会发生在一个成员身上并拒绝这样做。

如果我进行另一个相同的查询,只需输入具有不同关系的属性,例如[Time].[Month][Time].[DayOfMonth],聚合工作正常,因为同一天可能属于多个月,需要聚合数据。

现在我不知道为什么会发生这种情况 - Reporting Server 是否准确地查询 OLAP 数据源以找出关系或什么?或者在返回所有行的查询中是否有一些魔法,我不知道?有效和无效的案例的唯一相关性似乎是关系。

编辑: 玩了更多之后的一些观察:如果我从查询中删除[Parent].Members * [Child].Members 行,则报告有效,强制它只检索[Parent].ALL * [Child].&[ID] 行。该图表现在已汇总数据,但显然,我不再有个人成员了。

【问题讨论】:

    标签: reporting-services ssas mdx


    【解决方案1】:

    我希望能提供一些帮助。

    1. 报告服务中的聚合函数需要一个“范围”参数...例如 Aggregate(Fields!Child.value, "ParentGroup")
    2. 您的数据提供者必须支持此功能。如果没有,则返回“Nothing”。请参阅下面的链接...

    有关更多帮助/信息,请查看Aggregate 函数文档。

    【讨论】:

    • 范围参数是可选的,分析服务确实支持聚合函数。
    • 如果你不指定范围,那么它将使用它所在的当前范围。你确定当前范围是你想要的吗?
    • 我只是对图表中的 ChildID 进行分组,无法在 scope 参数中指定其他任何内容。
    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    相关资源
    最近更新 更多