【问题标题】:User defined hierarchy in an MDX queryMDX 查询中的用户定义层次结构
【发布时间】:2011-04-27 22:08:25
【问题描述】:

this question regarding calculating a member 开始,我有 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?还是我只是把事情复杂化了?如有必要,我不反对在多维数据集中进行更改,或者我可以在那里定义这个层次结构。

【问题讨论】:

    标签: ssas hierarchy mdx


    【解决方案1】:

    AFAIK,如果不使用客户端代码或更改多维数据集结构,您无法使用 MDX 获得假定为客户端层次结构的结果。即使您可以找到一种技巧来伪造客户端结果作为层次结构,但我不建议您这样做。

    这是我的建议。 如果我理解正确,您希望得到一个如下所示的不平衡层次结构树的结果。

    [资产].[类]

    • [固定收益]
      • [资产].[类别].[固定收益衍生品]
      • [资产].[类别].[固定收益非衍生品]
    • 财产
    • 股权

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

    您可以尝试通过添加包含PropertyEquity 成员的中间级别(或叶级别)来平衡层次结构,或者创建父子层次结构以实现更深层次的不平衡树。

    编辑

    这是一个关于父子维度的article

    【讨论】:

    • 一个节点有孩子(固定收入),3个节点没有。这是不平衡树的定义吗?
    • 我已经更新了我的答案,添加了一个关于父子维度和不平衡层次结构的文章链接。
    【解决方案2】:

    我最终只返回了类和子类,并在客户端代码中构建层次结构。

    【讨论】:

      【解决方案3】:

      也许以这种方式添加计算成员:

      WITH MEMBER [Asset].[Class].[Fixed Income].[Derivatives] AS ...
      

      【讨论】:

      • 试过了...就其而言,固定收入是层次结构的底部,不会让我添加更多的孩子。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2022-06-27
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多