powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование Descendants
6 сообщений из 6, страница 1 из 1
Использование Descendants
    #32090066
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, кто юзал эту ф-ию, отзовитесь!
Есть:
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", что по моему мнению должно приводить к получению множеста со значением предыдущего уровня.
Или он возвращает не предыдущий а предыдущИЕ уровни???? Хотя не должен.
Тогда как ограничить выборку?
Или может построить запрос по другому?
...
Рейтинг: 0 / 0
Использование Descendants
    #32090250
lubimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
флаг AFTER дает результат именно по всем нижележащим мемберам.
Попробуйте использовать вызов Descendants с указанием уровня в числовом виде - тогда сумма вам нужна по Descendants с уровнем -1 относительно родителя.
...
Рейтинг: 0 / 0
Использование Descendants
    #32090264
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А куда ентот -1 в Descendants вставить?
...
Рейтинг: 0 / 0
Использование Descendants
    #32090269
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что меня удивляет, так то что судя по примеру в 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
...
Рейтинг: 0 / 0
Использование Descendants
    #32090828
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Descendants([Товары_иерархия].currentmember,,LEAVES)

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

P.S. Остальное пока не получается - работы много.
...
Рейтинг: 0 / 0
Использование Descendants
    #32091539
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура! Получилось!!!
Кто бы мог подумать что так!
Наглядный пример того что начинающим BOL ничего не даёт :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование Descendants
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]