Допустим, у нас есть куб с Dimention «Продуктовый магазин», который имеет иерархию 2 уровня:MDX: генерировать уровень иерархии в рамках отчета RDL
- Фрукты & Овощи DEP.
- Фрукты
- Овощи
- помидоры
- Огурцы
- Bakery Dep.
- Молоко.
Вопрос заключается в том - как я могу добавить уровень иерархии в пределах MDX запроса RDL-отчета, так что «Томаты» и члены «Огурцы» переедет в новый 3-го уровня в нативных 2-го уровня «Овощи». Мне нужно сделать это без каких-либо изменений в Cube, все с помощью только чистого mdx.
Когда я попытался построить расчетный набор для желаемого 3-го уровня и использовать его вместе с остальной частью исходной иерархии, как это:
WITH SET [Level 3] AS
case
when [Grocery store].[Hierarchy].[Level 2].CURRENTMEMBER = [Grocery store].[Hierarchy].&[Tomatoes] OR
[Grocery store].[Hierarchy].[Level 2].CURRENTMEMBER = [Grocery store].[Hierarchy].&[Cucumbers]
then [Grocery store].[Hierarchy].[Level 2].CURRENTMEMBER
else null end
SELECT {[Measures].[Sales]} ON COLUMNS,
CrossJoin(Hierarchize({[Grocery store].[Hierarchy].[Level 2]}
-{[Grocery store].[Hierarchy].&[Tomatoes],
[Grocery store].[Hierarchy].&[Cucumbers]}),
[Level 3]) ON ROWS
FROM [CUBE]
я столкнулся с рассказывающим об ошибке, что функция декартова не может принимать одно в том же размере «Продуктовый магазин» два раза.
Ваша цель - присоединиться к двум членам Tom & Cuc с членами Level2? Если это то, чего вы хотите достичь, вы можете создать пользовательские элементы в другом измерении, которые равны Tom & Cuc, а затем перекрестно присоединить эти новые пользовательские элементы к Level2 .... но если вы хотите сделать новый уровень в сценарий MDX, тогда это невозможно. – whytheq