2016-11-11 43 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