Многомерные выражения — последний уровень в кортеже — конструктор запросов SSRS

У меня есть такая иерархия определенной группы в моем кубе (вот изображение: https://imgur.com/ntdOFnF):

1. Group    
1a. Group  
    +Members  
    +Level 02  
    +Level 03  
    +Level 04  
    *Member properties  
    *a  
    *b  
    *c  
    *d

И мне интересно, как отображать только последний уровень этой группы. Потому что, когда я напишу [Group], у меня будут все участники со всех уровней. Главное условие - я не знаю, что последний уровень Level 04 (уровней может быть больше 4).

Есть ли какая-нибудь функция, которую я должен знать?


person Monic    schedule 02.12.2013    source источник


Ответы (1)


Вы можете использовать hierarchy.levels.count, чтобы получить количество уровней в иерархии, если у вас есть иерархия с неизвестным/изменяющимся количеством уровней. Оттуда вы можете получить самый низкий уровень с помощью функции Уровни. Вы должны вычесть единицу, потому что это позиция с отсчетом от нуля.

[Group].[Group].Levels([Group].[Group].levels.count-1)

Вы также можете сделать это с помощью Потомки . Второй аргумент в функции потомков — это расстояние от указанного члена, поэтому вам нужно вычесть 1 из количества уровней. Вот пример запроса.

select {} on 0, 
descendants([Group].[Group].[All], ([Group].[Group].levels.count - 1), SELF) on 1
from [Cube]

Одно примечание: если у вас рваная иерархия (что, как я предполагаю, у вас есть, поскольку вы не знаете количество уровней), это приведет к извлечению только членов на самом низком уровне, а не всех листьев. Если вы используете hidememberif, чтобы скрыть повторяющиеся элементы, чтобы они не были их собственными родителями, вам действительно нужны все листья, которые вы можете указать в функции потомков.

select {} on 0, 
    descendants([Group].[Group].[All], , LEAVES) on 1
    from [Cube]
person mmarie    schedule 02.12.2013
comment
Второй запрос для меня самый лучший, т.к. третий запрос дает мне все листья со всех уровней. Например у меня такая ситуация, что в Level 02 у меня есть еще и одиночный лист, который тоже будет отображаться - чего я не хочу. Но у меня другой вопрос (может быть, он для другой темы). Я могу получить такую ​​​​ситуацию, только используя этот код в режиме разработки в SSRS. Есть ли возможность сделать это в конструкторе запросов? - person Monic; 04.12.2013