powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
4 сообщений из 4, страница 1 из 1
Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
    #32917217
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой СМ:
Код: plaintext
Sum([Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember, [Measures].[Продажи Количество] * (([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) - [Measures].[Продажи Количество]))
сложность в том, что
Код: plaintext
([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1)
должно вычислиться в точке расчета всего СМ, т.е. [Дата].[ГКМД].CurrentMember1 должен равнятся текущему выбранному элементу в измерении Дата, а не текущему элементу измерения, получаемому по сету
Код: plaintext
[Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember
. Более общими словами, нельзя вынести
Код: plaintext
([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1)
из Sum, в которой накладывается ограничение. Не подскажете ли как это реализовать?
...
Рейтинг: 0 / 0
Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
    #32917374
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВжикЕсть такой СМ:
Код: plaintext
Sum([Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember, [Measures].[Продажи Количество] * (([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) - [Measures].[Продажи Количество]))
сложность в том, что
Код: plaintext
([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1)
должно вычислиться в точке расчета всего СМ, т.е. [Дата].[ГКМД].CurrentMember1 должен равнятся текущему выбранному элементу в измерении Дата, а не текущему элементу измерения, получаемому по сету
Код: plaintext
[Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember
. Более общими словами, нельзя вынести
Код: plaintext
([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1)
из Sum, в которой накладывается ограничение. Не подскажете ли как это реализовать?

Уважаемый Вжик, а вы не могли бы привести примерчик запроса, в котором ваш CM собственно употребляется. Желательно в Терминах Foodmart, дабы у себя воспроизвести можно было. Так вам быстрее помочь можно будет.
...
Рейтинг: 0 / 0
Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
    #32917612
Беляев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думаю можно воспользоваться математикой
а именно у вас получается сумма за десять предыдущих дней выражения
Код: plaintext
1.
[Measures].[Продажи Количество] * (([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) - [Measures].[Продажи Количество])
Можно преобразовать выражение в
Код: plaintext
1.
[Measures].[Продажи Количество] * ([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) - [Measures].[Продажи Количество]*[Measures].[Продажи Количество]
Как известно sum(a+b)=Sum(a)+Sum(b)
Тогда получаем два выражения
Код: plaintext
1.
[Measures].[Продажи Количество] * ([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) 
и
Код: plaintext
1.
- [Measures].[Продажи Количество]*[Measures].[Продажи Количество]
А так как выражение
Код: plaintext
1.
([Measures].[Коэффициент], [Дата].[ГКМД].CurrentMember1) 
Является константой от времени
Вжикдолжно вычислиться в точке расчета всего СМ, т.е. [Дата].[ГКМД].CurrentMember1 должен равнятся текущему выбранному элементу в измерении Дата, а не текущему элементу измерения, получаемому по сету
То его можно вынести за знак суммы, т.е. финальное выражение будет иметь вид
Код: plaintext
1.
[Measures].[Коэффициент]*sum([Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember,[Measures].[Продажи Количество]) - sum([Дата].[ГКМД].CurrentMember.Lag( 10 ) : [Дата].[ГКМД].CurrentMember,[Measures].[Продажи Количество]*[Measures].[Продажи Количество])
Только смысл его объясняйте сами
Владислав Беляев
...
Рейтинг: 0 / 0
Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
    #32917685
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример в терминах FoodMart привести сложно, приведу реальный СМ. Задача в том, что при расчете СМ при мебмере Дата = 29 января вычисляется СКО за предыдущие 7 дней по продажам, а потом предыдущие продажи за 7 дней надо вписать в коридор, состоящий из среднего значения продаж за эти 7 дней +/- полученное СКО на этой выборке. В данном CМ это реализовано явным указанием мембера измерения Дата = 29 января. Это для тестов. Теперь надо придумать как автоматом выводить на СКО, посчитанное 29 января.
Код: plaintext
1.
2.
3.
4.
5.
Sum(ClosingPeriod([Дата].[ГКМД].[Дата], [Дата].[ГКМД].CurrentMember).Lag([Measures].[Количество дней обучающей выборки (ТНП)]) : ClosingPeriod([Дата].[ГКМД].[Дата], [Дата].[ГКМД]).PrevMember,
iif(not IsEmpty([Measures].[фПродажи Количество]) or [Measures].[Остаток Количество (нач.пер.)] >  0  or [Measures].[Остаток Количество (кон.пер.)] >  0 , iif([Measures].[Продажи Количество] > ([Measures].[Скорость продаж вероятная (ТНП)],
[Дата].[ГКМД].[ 29  янв  2004 ]) + ([Measures].[Продажи Количество СКО (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]), ([Measures].[Скорость продаж вероятная (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]) + ([Measures].[Продажи Количество СКО (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]),
iif([Measures].[Продажи Количество] < ([Measures].[Скорость продаж вероятная (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]) - ([Measures].[Продажи Количество СКО (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]),
([Скорость продаж вероятная (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]) - ([Measures].[Продажи Количество СКО (ТНП)], [Дата].[ГКМД].[ 29  янв  2004 ]),
[Measures].[Продажи Количество])), NULL)) / [Measures].[Дней не пустых количество (ТНП)]
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет на сете мемберов изм-я Дата с выводом расчитываемой меры на иной мембер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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