2016-11-11 50 views
0

我有以下簡單的立方體:MDX:如何選擇所有層級中

enter image description here

在那裏我有3個軸,和我想的JasperSoft OLAP瀏覽器中顯示了這一切。 Si我需要一個MDX命令來在ROWS中指定:產品屬性和COLUMNS中的時間屬性。

我想要這樣的:

SELECT {([Product].[HierarchyProduct].[Name] , [Product].[HierarchyProduct].[Line])} ON ROWS, 
{([Client].[HierarchyClient].[Ville] , [Time].[HierarchyClient].[Pays])} ON COLUMNS 
FROM Cube 

但我有不知道的錯誤。 「[產品] [HierarchyProduct] [名]

那麼,如何可能我訪問它?

回答

0

在蒙德里安層次名在同一方括號維度名被指定:[Dimension.Hierarchy].[Level] 然而,層次結構名稱可省略(至少如果你有維度只有一個層次結構):只使用[Dimension].[Level]

而AFAIK,您不能在元組定義中混合使用同一維的成員,就像您嘗試使用Line和Name一樣。而實際上,你不需要:下級成員的姓名總是包括他們父母的姓名。但是,您的可視化工具可能會隱藏較高級別的名稱(對不起,我不知道Jasper是否會這樣做)。在這種情況下,您可能需要將上級名稱添加爲計算成員。

我建議你可以試試下面的(我不能真正理解你列的要求,所以我已經添加[時間] [月]到客戶端的信息。):

SELECT 
    [Product.HierarchyProduct].[Line].AllMembers ON ROWS 
    , NonEmptyCrossJoin(
     [Client.HierarchyClient].[Pays].AllMembers 
     , [Time.HierarchyTime].[Month].AllMembers 
    ) ON COLUMNS 
FROM [Cube] 

通過順便說一句,你的關卡在我看來似乎是顛倒過來的:最詳細的關卡位於層次結構的頂端。這是真的嗎?

+0

是的,你是對的(對不起,我在MDX的第一步) – firasKoubaa