我有以下简单的多维数据集:
我有3个轴,我想在JasperSoft OLAP查看器中显示它们。 我需要在ROWS中指定MDX命令:产品属性,在COLUMNS中指定时间属性。
我正在尝试这个:
SELECT {([Product].[HierarchyProduct].[Name] , [Product].[HierarchyProduct].[Line])} ON ROWS,
{([Client].[HierarchyClient].[Ville] , [Time].[HierarchyClient].[Pays])} ON COLUMNS
FROM Cube
但我有一个错误:不知道" [产品]。[HierarchyProduct]。[名称] "
那我怎么可以访问它?
答案 0 :(得分:0)
在Mondrian层次结构中,名称必须与维名称相同的方括号中指定:[Dimension.Hierarchy].[Level]
但是,可以省略层次结构名称(至少在维度中只有一个层次结构时):只使用[Dimension].[Level]
和AFAIK,你不能在元组定义中混合相同维度的成员,就像你尝试过Line和Name一样。实际上,你并不需要:较低级别的成员姓名总是包括他们父母的姓名。但是,您的可视化工具可能隐藏了上层名称(抱歉,我不知道Jasper是否这样做)。在这种情况下,您可能需要将上级名称添加为计算成员。
我建议尝试以下内容(我无法理解您对COLUMNS的要求,因此我已将[时间]。[月]添加到客户信息中):
SELECT
[Product.HierarchyProduct].[Line].AllMembers ON ROWS
, NonEmptyCrossJoin(
[Client.HierarchyClient].[Pays].AllMembers
, [Time.HierarchyTime].[Month].AllMembers
) ON COLUMNS
FROM [Cube]
顺便说一句,你的水平在我看来就像是颠倒了:最详细的水平位于层次结构的顶层。这是真的有意吗?