首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多层次结构下的LastChild仿真

多层次结构下的LastChild仿真
EN

Stack Overflow用户
提问于 2011-11-03 02:36:55
回答 2查看 2.2K关注 0票数 1

我有一个SSAS多维数据集,其中有一个度量值需要通过位于另一个度量值中的百分比进行分配。我将所有这些设置为我的"Equity Amount“度量中的度量表达式,它工作得很好。

我的问题是这个"Equity Amount“度量实际上是一个快照,所以我需要使用LastChild函数对其进行聚合。事实证明,在半加性度量中不能有度量表达式,所以我尝试在MDX中伪造LastChild函数。

我在网上看过很多例子,但没有一个谈到在date维度中有多个层次结构。我有“日历年度”和“财政年度”两个层次结构。

我的MDX只适用于一个层次结构,但一旦我确定了第二个层次结构的范围,第一个层次结构就会被覆盖。我猜我需要在一条语句中处理这两个层次结构,但我真的很难让它工作。

这是我对一个层次结构的MDX。有没有人可以帮我修改它以适应多个层次结构,或者有没有其他方法可以解决我的问题?

代码语言:javascript
复制
Scope([Measures].[Equity Value]);
    This = iif(isleaf([Calendar].[By Calendar Year].CurrentMember),
                [Measures].[Equity Value],
                ([Calendar].[By Calendar Year].CurrentMember.LastChild,[Measures].[Equity Value]));
End Scope;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-05 10:12:43

感谢您的尝试!我明白你的意思(我想)。MDX是一种很难处理的语言!

我最终通过我的度量值的源视图进行了分配,并保留了度量值的LastChild聚合函数。最后,它更容易,而且对查询性能也更好。

无论如何,还是要感谢:)

票数 0
EN

Stack Overflow用户

发布于 2011-11-05 00:46:46

大卫,

1)您正在使用作用域作为计算成员。您可以通过声明作用域仅在子多维数据集中工作来消除iif:

代码语言:javascript
复制
 scope ([Measures].[Equity Value],[Calendar].[By Calendar Year].levels(0).... )
  This = (the expression)

2)不确定是否理解您的问题,但具有相同维度的两个层次结构的两个成员的元组可以通过构造为null :例如,您的日历的第一天(1/1/2010)和您的会计日历的第一天(例如1/6/2020)不是同一天,因此实际上为null。同一维的两个层次结构只是表示相同坐标日期(这里是天)的方式,您可以通过声明一个元组来进行交集。

不确定我是不是在帮你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7985589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档