powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вопрос на засыпку
14 сообщений из 14, страница 1 из 1
Вопрос на засыпку
    #32467395
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня Time Dimension - Period. Я работаю с MS AS

Имеются уровни: Quarter, Month, Week, Day. Еще есть уровень по умолчанию (All)

У нижнего уровня есть доп. свойтсво WorkTime - это рабочее время за день в часах, например 17 часов (2 смены).

Соответственно для каждого уровня группировки я получаю суммарное время, например за неделю 17*5 и т.д.

Это я делаю так:

Код: plaintext
Sum(Descendants([Period].CurrentMember, Day), StrToValue([Period].CurrentMember.Properties( "Work Time" ))) *  24 


Вернее время WorkTime в сутках, т.е. 17/24 = 0.708(3) поэтому умножаю на 24

но вот беда, если иметь доп. свойство только на уровне Day, то формула не работает, показывает на всех уровнях кроме нижнего #ERR

Сделал доп. свойтво WorkTime на всех уровнях. Стало показывать и считать правильно. Другая беда. Для уровня (All) доп. свойства нет. А у меня есть отчеты где в разрере периодов показывать не надо, поэтому используется группировка (All). Зато в этих отчетах очень нужен WorkTime, а вместо него #ERR

Как быть? Я так понимаю что проблема в во втором параметре функции Sum, StrToValue([Period].CurrentMember.Properties("Work Time")), но как записать чтоб бралось доп. свойтво только нижнего уровня я не знаю.

Помогите кто делал такие вещи. Буду весьма признателем.
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32467566
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На этом форуме уже встечались ответы..

IIF(Isleaf([Products].[Palma].CurrentMember), [Measures].[Units]*cdbl([Products].[Palma].CurrentMember.Properties("weight"))/1000, sum(descendants([Products].[Palma].CurrentMember,,Leaves),[Measures].[KG sold]))

Вместо расчета веса свою формулу вставь. Работает быстро.
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32467598
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не то. У меня тоже самое написано. В функции Sum - 2 параметра, это сет и выражение. Сет получить легко, а вот выражение нужно брать всегда у листьев. Как это сделать?

Sum(Descendants([Period].CurrentMember, Day), StrToValue(Descendants([Period].CurrentMember, Day).CurrentMember.Properties("Work Time"))) * 24

такое тоже не прокатывает. Все значения #ERR
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32467619
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sum(Descendants([Period].CurrentMember, Day), StrToValue([Period].CurrentMember.Properties("Work Time"))) * 24

Это формула из первого сообщения. Я подозреваю что выражение определяется так: Проверяется есть ли такое доп. свойство у CurrentMember, а значение берется у того уровня который задан в сете, т.е. день.

Я это проверял. Если убрать доп. свойство Work Time у кварталов, то при группировке по кварталам показывается #ERR, по остальным нормально. Если убрать у месяцев, то по месяцам показывает #ERR. А вот данные суммируются верно.

Для уровня (All) я никак не могу сделать доп. свойство :-(

А когда пытаюсь взять выражение у листа, то что-то не проходит

StrToValue(Descendants([Period], Day).CurrentMember.Properties("Work Time"))
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32469032
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели опять ни у кого никаких идей нету?
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32472880
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо StrToValue напишите Val.
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32472883
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С Val я поторопился, завтра посмотрю в запасниках, помоему что-то подобное приходилось решать.
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32472885
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попутная идея - а почему бы вам не построить на вашем измерении, как на таблице фактов кубик и работать с рабочим временем как с "человеческой" мерой и не пересчитывать все время на лету с помощью Calculated Member,
тем более эта "мышиная возня" с Calculated Member вам уже прилично кровушки попортила.
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32473902
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я даже не знаю что сказать. Можно из куба к кубу обращаться? И как это? Не слышал про такое
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32473915
Фотография Гликоген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. MDX-функцию LookupCube
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32474152
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О... спасибо. Это уже что-то. А то я думал куб сам в себе варится
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32474480
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A o virutualnih kubah vi slishali?
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32475893
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слышал, но не понял
...
Рейтинг: 0 / 0
Вопрос на засыпку
    #32475919
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LookupCube личше избегать (мудреное построение запроса, неопримальная производительность) а лучше использовать виртуальные кубы. Привда ногда могут возникнуть ситуации, когда без LookupCube не обойтись, но суда по вашей проблеме - ее можно решить сведением основного и вспомогательного физических кубов в один виртуальный.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вопрос на засыпку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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