Reporting Services聚合不适用于父子关系

时间:2009-05-22 09:33:53

标签: reporting-services ssas mdx

我在Analysis服务维度中有一个父子属性关系,比如[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],聚合工作正常,因为这一天同一天可能属于很多个月,需要汇总数据。

现在我不知道为什么会发生这种情况 - 报表服务器是否正在查询OLAP数据源以找出关系或什么?或者在查询中是否存在一些返回ALL行的魔法,我不知道这些行?对于工作和似乎不是关系的案件的唯一相关性。

编辑:在播放更多内容后的一些观察结果:如果我从查询中删除行[Parent].Members * [Child].Members,则会生成报告,强制它仅检索[Parent].ALL * [Child].&[ID]行。该图表现在汇总了数据,但显然,我没有个人成员了。

1 个答案:

答案 0 :(得分:0)

我希望有几点意见可以提供帮助。

  1. 报告服务中的聚合函数需要“范围”参数...例如Aggregate(Fields!Child.value,“ParentGroup”)
  2. 您的数据提供商必须支持此功能。如果没有,则返回“Nothing”。见下面的链接......
  3. 有关更多帮助/信息检查Aggregate功能文档。