2016-11-11 9 views
0

У меня есть следующий простой куб:MDX: Как выбрать все уровни иерархии

enter image description here

, где я есть 3 оси, и я хочу показать все в средстве просмотра JasperSoft OLAP. Мне нужно выполнить команду MDX, чтобы указать в свойствах ROWS: Свойства продукта, а в COLUMNS - свойства времени.

я пытаюсь это:

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

но я имел ошибку, не зная ". [Product] [HierarchyProduct] [Имя]"

Так как может я обращаюсь к нему ??

ответ

0

В имени иерархии Mondrian должен быть указан в одних и тех же квадратных скобках, как имя измерения: [Dimension.Hierarchy].[Level] Однако имя иерархии может быть опущено (по крайней мере, в случае, если у вас есть только одна иерархии в измерении): просто использовать [Dimension].[Level]

И AFAIK, вы не можете смешивать элементы одного измерения в определении кортежа, например, вы пытались использовать строку и имя. И вам, собственно, не нужно: имена членов на нижних уровнях всегда включают имя их родителей. Однако ваш инструмент визуализации может скрывать имена верхнего уровня (извините, я не знаю, делает ли Джаспер). В этом случае вам, вероятно, потребуется добавить имена верхнего уровня в качестве расчетного элемента.

Я хотел бы предложить, чтобы попробовать что-то вроде следующего (я не мог понять ваши требования к КОЛОННЫ, поэтому я добавил [Время] [месяц] к информации клиента.):

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

По путь, ваши уровни кажутся мне такими, какими они меняются: наиболее подробные уровни находятся на вершине иерархии. Это действительно предназначено?

+0

Да, вы правы (извините, я на первых шагах с MDX) – firasKoubaa