在MDX查询用户定义的层次结构

从这个问题有关计算成员继我有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

请注意,前两排是3行的实际constituant部分现在,我可以做一些魔法与读取该数据把该表到一个层次中的客户端代码,但 - 这里的问题 - 我能做到这一点使用MDX ? 或者,我只是复杂的东西? 我不是不利于进行更改多维数据集中,如果有必要,或者如果我可以定义这个阶层那里。

--------------解决方案-------------

也许将计算出来的成员是这样的:

与会员[资产] [级]。[固定收益]。[衍生物]为...

AFAIK,您不能使用MDX得到的结果是应该的层次在客户端没有一些魔法的客户端代码或更改多维数据集结构。 即使你可以找到一个窍门伪造客户的结果作为一个层次,我不建议你走那条路。

这是我的建议。 如果我理解正确 ,你想要得到的结果是一种不平衡的层次树看起来像下面的。

[资产] [类]

  • [固定工资]
    • [资产] [级]。[固定收益型衍生品]
    • [资产] [级]。[固定收益非衍生]
  • 属性
  • 公平

这种不平衡的树只能通过父子层次结构来实现。

您可以尝试通过增加一个中间水平(或叶级),以平衡层次结构,包括PropertyEquity成员或创建一个父子层次结构,实现更深层次的不平衡树。

编辑

下面是关于父子维度的文章。

最后我只返回两个类和子类,并建立在客户端代码的层次结构。

分类:SSAS 时间:2015-03-15 人气:0
本文关键词: SSAS,MDX,层次
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.816 (s). 10 q(s)