簡體   English   中英

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獲得在客戶端被視為層次結構的結果。 即使您可以找到一種方法來偽造客戶,但結果卻是一個層次結構,我不建議您那樣做。

這是我的建議。 如果我正確理解的話 ,您希望得到一種類似於下面所示的不平衡層次樹的結果。

[資產]。[類別]

  • [固定收入]
    • [資產]。[類別]。[固定收益衍生物]
    • [資產]。[類別]。[固定收益非衍生品]
  • 屬性
  • 公平

這種不平衡的樹只能由父子層次結構實現。

您可以嘗試通過添加包括PropertyEquity成員的中間級別(或葉子級別)來平衡層次結構,或者創建父子層次結構以實現更深層次的不平衡樹。

編輯

這是有關父子尺寸的文章

也許以這種方式添加計算成員:

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

我最后只返回了Class和Sub Class,並在客戶端代碼中構建了層次結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM