powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Интересный Calc Member
7 сообщений из 7, страница 1 из 1
Интересный Calc Member
    #33761525
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. MS AS 2000 SP3a.
Вот есть у меня такой CM. Физический смысл - посчитать количество машино-дней. (Ну или человеко-дней так же считается :)
Код: plaintext
1.
2.
3.
4.
 
SUM(Filter(
CrossJoin({Descendants([Дата].CurrentMember,[Дата].[День])},
{Descendants([Авто].CurrentMember,[Авто].[№ авто])},
[Measures].[количество]> 0 ), 1 )

Понятно, что это работает пока не выберешь галкой произвольный период.
Как это обойти, так и не придумал... Есть какие-нибудь предложения?
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33762774
ds|Smith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеете в виду выбрать во временном измерении несколько членов (1-й квартал, сентябрь, 5 декабря) ? Т.е. мультиселект?
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33763551
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, именно, мультиселект.
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33763575
ds|Smith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот Вам =) должно помочь
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33763626
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, спасибо, уж больно сложно :)
Я на самом деле уже давно использую технологию, которую кажется backfire тут опубликовал, если не ошибаюсь.
Смысл в том, чтобы сделать пустой куб только с измерением Дата, и потом виртуальный куб, куда включить любой рабочий куб и этот пустой куб.
Такой способ у меня везде используется для нахождения количества дней в выбранном периоде (с мультиселектом).

Но я почему то не додумался использовать тот же способ для этой задачи.
Вот только щас додумался.
Получилось следующее:

Код: plaintext
1.
2.
3.
4.
5.
SUM(NonEmptyCrossJoin(
{StrToMember("[Дата]"+Mid(MemberToStr(tail(filter(descendants([Дата2].[All Дата],[Дата2].[День]),ValidMeasure([Measures].[D]) >  0 )).Item( 0 )), 8 )):    -- это первая дата выбранного периода
StrToMember("[Дата]"+Mid(MemberToStr(head(filter(descendants([Дата2].[All Дата],[Дата2].[День]),ValidMeasure([Measures].[D]) >  0 )).Item( 0 )), 8 )) -- это последняя дата выбранного периода
},
{Descendants([Авто].CurrentMember,[Авто].[№ авто])},
{[Measures].[Количество]}), 1 )

Измерение [Дата2] и мера [D] - это как раз составляющие того вспомогательного куба с одной мерой и одним измерением. Если интересно - поищу сссылку, где описывалось как это делать.


Извращения со строковыми функциями из-за того что у меня почему-то не работает функция LinkedMember, вроде бы тут ей самое место.
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33763721
ds|Smith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно взглянуть, хотя я, кажется, знаю о чем речь, но все же..
А суть этих методов похоже одинакова, просто в моем случае не требуется создавать виртуальных кубов, а у backfire плюс в том, что можно оперировать периодом, даже если в нем нет данных из реального куба.
...
Рейтинг: 0 / 0
Интересный Calc Member
    #33763814
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Пашке

Только куб не пустой, а с мерами: количество дней, количество рабочих дней и т.д.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Интересный Calc Member
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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