![](/img/trans.png)
[英]How to get an “(all)” value for a level in a user defined hierarchy in SSAS/MDX
[英]User defined hierarchy in an MDX query
从这个有关计算成员的问题开始,我有2个计算的成员定义为:
MEMBER [Asset].[Class].[Fixed Income Derivatives]
AS
AGGREGATE(
{
[Asset].[Class].&[Fixed Income],
[Asset].[Sub Class].&[Derivatives]
},
[Measures].CurrentMember
)
MEMBER [Asset].[Class].[Fixed Income Non-derivatives]
AS
AGGREGATE(
{
[Asset].[Class].&[Fixed Income],
EXCEPT([Asset].[Sub Class].[Sub Class],[Asset].[Sub Class].&[Derivatives])
},
[Measures].CurrentMember
)
我可以在MDX查询中使用它们,如下所示:
SELECT
{
[Measures].[Market Value]
} ON 0,
NON EMPTY
{
[Asset].[Class].[Fixed Income Derivatives],
[Asset].[Class].[Fixed Income Non-derivatives]
[Asset].[Class].[Class]
} ON 1
FROM [Asset]
这给了我如下输出:
Class-----------------------|-MarketValue
============================|=============
Fixed Income Derivatives | 12345
Fixed Income Non-derivatives| 54321
Fixed Income | 66666
Property | 123
Equity | 987
请注意,前2行实际上是第3行的组成部分。现在,我可以对客户端代码进行一些魔术处理,该客户端代码读取该数据以将该表转换为层次结构,但是-这是问题-我可以使用MDX来完成吗? 还是我只是使事情复杂化? 我对在必要时在多维数据集中进行更改并不不利,或者可以在其中定义此层次结构。
AFAIK,如果没有客户端代码的任何魔术或更改多维数据集结构,则无法使用MDX获得在客户端被视为层次结构的结果。 即使您可以找到一种方法来伪造客户,但结果却是一个层次结构,我不建议您那样做。
这是我的建议。 如果我正确理解的话 ,您希望得到一种类似于下面所示的不平衡层次树的结果。
[资产]。[类别]
这种不平衡的树只能由父子层次结构实现。
您可以尝试通过添加包括Property
和Equity
成员的中间级别(或叶子级别)来平衡层次结构,或者创建父子层次结构以实现更深层次的不平衡树。
编辑
这是有关父子尺寸的文章 。
也许以这种方式添加计算成员:
WITH MEMBER [Asset].[Class].[Fixed Income].[Derivatives] AS ...
我最后只返回了Class和Sub Class,并在客户端代码中构建了层次结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.