2015-10-14 148 views
0

我試圖創建一個OLAP選擇器,包括字段返回,還包括其他字段的總和字段。我怎麼能修改此MDX查詢來解決這個問題:MDX查詢pentaho CDE

WITH 
    MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
    Filter 
    (
    {Descendants([Year].[All Years],[Year].[Year])} 
    ,(NOT 
     IsEmpty([Year].CurrentMember)) 
) ON ROWS 
,{[Measures].[Name]} ON COLUMNS 
FROM [*My Table*]; 

我想我的選擇顯示... 「2010」 「2011」 「2012」 「2013」​​ 「2014」 和「ALL」

回答

0

你應該能夠在[全部]成員添加到您使用的行集:

WITH 
    MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
    { 
    [Year].[All Years] 
    ,Filter 
    (
     {Descendants([Year].[All Years],[Year].[Year])} 
    ,(NOT 
     IsEmpty([Year].CurrentMember)) 
    ) 
    } ON ROWS 
,{[Measures].[Name]} ON COLUMNS 
FROM [*My Table*]; 

使用的所有部件的更通用的名稱和簡化你得到的保持的方式年度會員:

WITH 
    MEMBER [Measures].[Name] AS 
    [Year].CurrentMember.UniqueName 
SELECT 
    { 
    [Year].[All] 
    ,Filter 
    (
     [Year].[Year].MEMBERS 
    ,(NOT 
     IsEmpty([Year].CurrentMember)) 
    ) 
    } ON ROWS 
,{[Measures].[Name]} ON COLUMNS 
FROM [*My Table*]; 
0

不清楚您的要求。但是,如果您希望看到DESCENDANTS函數的輸出所產生的所有年份,則可以嘗試在計算所得成員中使用GENERATE函數。

WITH MEMBER Measures.[Years] AS 
GENERATE 
    (
     Filter 
     (
     {Descendants([Year].[All Years],[Year].[Year])} 
     ,(NOT 
      IsEmpty([Year].CurrentMember)) 
    ) 
     , 
    [Year].[Year].currentmember.member_value 
     , 
    " " 
    ) 
+0

我想看到存在於OLAP選擇器(例如「2010」「2011」「2012」「2013」​​「2014」),另一場「所有」這些年來這是其他年份的總和。 – mike5v