[英]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.