|
Использование Descendants
|
|||
---|---|---|---|
#18+
Народ, кто юзал эту ф-ию, отзовитесь! Есть: 1. Измерение типа Parent-Child "Товары_Иерархия", несбалансированная. 2. Мера "Кол" - количество. Нужно, создать вычисляемое поле, в котором, выводилось бы это количество, помноженное на опреденную константу. Допустим константа = 1, и сначала достаточно просто вывести в вычисляемом поле тоже "Кол". Для этого использую следующий запрос: with member measures.[Ed] as ' iif (isleaf([Товары_иерархия].currentmember),[Measures].[Кол], sum(descendants([Товары_иерархия].currentmember,[Товары_иерархия].currentmember.level,after),[Ed]) ) ' Т.е., если член иерархии "Товары_икрархия" не содержит потомков, то количество приравнивается числу в мере "Кол". Иначе производится суммирование количества (в мере "Ed" !) значений предыдущего уровня (именно предыдущего (следующего по вложенности), а не всех предыдущих!). Для этого и используем descendants, которая по идее должна возвратить для данного члена "Товары_иерархия" множество состоящее из значений указанного уровня иерархии. Получается: Товары.....................................................Кол........Ed Не.стаканы..........Кешка.Кеша.ваф...............30.........30 ...................................Кеша.прост.............70.........70 ..........................Кешка.Итог.....................100.......100 ..........................Фишка............................60.........60 Не.стаканы.Итог........................................160.......260 Стаканы...............Эскимо.в.стакане...........1320.....1320 Стаканы.Итог............................................1320.....1320 Общий.итог..............................................1480.....3160 В итоге видим, что колонки "Кол" и "Ед", которые должны быть равны, получаются отличными друг от друга. Т.е., начиная с 3-го, от последнего по вложенности, уровня иерархии (Не стаканы Итог), суммирование производится каким то странным образом. Если посмотреть в descendants, то модно увидеть что я использую флаг "after", что по моему мнению должно приводить к получению множеста со значением предыдущего уровня. Или он возвращает не предыдущий а предыдущИЕ уровни???? Хотя не должен. Тогда как ограничить выборку? Или может построить запрос по другому? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2003, 10:38 |
|
Использование Descendants
|
|||
---|---|---|---|
#18+
флаг AFTER дает результат именно по всем нижележащим мемберам. Попробуйте использовать вызов Descendants с указанием уровня в числовом виде - тогда сумма вам нужна по Descendants с уровнем -1 относительно родителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2003, 13:37 |
|
Использование Descendants
|
|||
---|---|---|---|
#18+
А куда ентот -1 в Descendants вставить? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2003, 13:45 |
|
Использование Descendants
|
|||
---|---|---|---|
#18+
И что меня удивляет, так то что судя по примеру в BOL, After должен был выдать именно члены предыдущие иерархии, а не всех ниже вложенных. Example (из BOL) Assume the levels in the Location dimension are named (in hierarchical order) Countries, States, Counties, and Cities. Expression Returns Descendants(USA) - All states, counties and cities in USA Descendants(USA, Counties) - All counties in USA Descendants(USA, Counties, SELF) - All counties in USA Descendants(USA, Counties, BEFORE) - All states in USA Descendants(USA, Counties, AFTER) - All cities in USA ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2003, 13:48 |
|
Использование Descendants
|
|||
---|---|---|---|
#18+
Descendants([Товары_иерархия].currentmember,,LEAVES) Ирина ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights P.S. Остальное пока не получается - работы много. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2003, 07:34 |
|
|
start [/forum/topic.php?fid=49&msg=32091539&tid=1873590]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 148ms |
0 / 0 |