Запрос MDX, содержащий 2 измерения из одной иерархии
соответствующие структуры из моего Куба заключаются в том, что у меня есть иерархия с "классом" и "подклассом". У меня также есть мера под названием "ценность", которую я пытаюсь получить.
простой запрос может выглядеть так:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY ([Some Dimension].[Class Hierarchy].[Class]) ON ROWS
FROM [MyCube]
и я, очевидно, могу прочитать подкласс, используя иерархию, которая возвращается в Adomd.
моя проблема двоякая, во-первых, как бы я "сгладил" эту иерархию, чтобы получить как класс, так и подкласс как дискретные члены В наборе ячеек? Это не работает:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY (
[Some Dimension].[Class Hierarchy].[Class],
[Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
иерархия классов иерархия используется более одного раза в функции Crossjoin
второй вопрос, что мне на самом деле нужно сделать, это фильтровать выше по конкретным классам, снова это не будет работать по той же причине, что и выше.
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY (
{[Some Dimension].[Class Hierarchy].[Class].&[ClassA],[Some Dimension].[Class Hierarchy].[Class].&[ClassB]},
[Some Dimension].[Class Hierarchy].[Sub Class]
) ON ROWS
FROM [MyCube]
любая помощь очень ценится. MDX сводит меня с ума!
3 ответов
в измерении отсутствует свойство MEMBERS.
для вашего первого примера попробуйте следующее:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY {(
[Some Dimension].[Class Hierarchy].[Class].MEMBERS,
[Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]
для вашего второго примера попробуйте это:
SELECT
NON EMPTY ([Measures].[Value]) ON COLUMNS,
NON EMPTY {(
[Some Dimension].[Class Hierarchy].[Class].&[ClassA],
[Some Dimension].[Class Hierarchy].[Class].&[ClassB],
[Some Dimension].[Class Hierarchy].[Sub Class].MEMBERS)} ON ROWS
FROM [MyCube]
используйте подзапросы в предложении WHERE. MDX всегда будет ограничивать использование одного измерения только на одной оси.
Sub Query-это способ обойти это. Я недавно узнал этот трюк после того, как MDX довел меня до сумасшествия..
Привет этот запрос работал для меня.
SELECT NON EMPTY { [Measures].[App Count] }
ON COLUMNS,
NON EMPTY
{(
EXISTING
(
[MART TIME DIM].[Date].[Date] .MEMBERS) *
[New Ren DIM].[New Ren CODE].[New Ren CODE].ALLMEMBERS
)}
ON ROWS FROM [SubmissionCube]
where
({
[MART BROKER DIM].[BROKER ID].&[10812]},{[MART TIME DIM].[Year].&[2015],
{[MARTTIME DIM].[Year].&[2016]}
})
пожалуйста, будьте осторожны с '}' в предложении where в запрос.