Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?
30 май 18, 10:33    [21452720]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 2533
Max_11111
Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?

С учетом multiselect выбора по измерению дат:

CREATE HIDDEN DYNAMIC SET CURRENTCUBE.[Выбранные дни] as existing [Измерение дат].[Ключевой атрибут День].[Ключевой атрибут День];

CREATE MEMBER CURRENTCUBE.[Ключ первой даты] as
CDbl(head(existing [Выбранные дни]).item(0).Properties("Key")),
VISIBLE = 1;

CREATE MEMBER CURRENTCUBE.[Ключ последней даты] as
CDbl(tail(existing [Выбранные дни]).item(0).Properties("Key")),
VISIBLE = 1;
30 май 18, 10:48    [21452779]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Если невозможно решить задачу в таком виде, то как получить начало предыдущего года чтобы с ним сравнить?
30 май 18, 10:50    [21452785]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 2533
Max_11111
Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?

Что касается сравнения периодов - немного не так, понадобится иерархия с днем и месяцем над ним.

CREATE HIDDEN DYNAMIC SET CURRENTCUBE.[Выбранные дни с иерархией] as existing [Измерение дат].[Иерархия Год-Полугодие-Квартал-Месяц-День].[Уровень день с ключевым атрибутом День];

CREATE MEMBER CURRENTCUBE.[Ключ первой даты по иерархии] as
CDbl(head(existing [Выбранные дни с иерархией]).item(0).Properties("Key")),
VISIBLE = 1;

CREATE MEMBER CURRENTCUBE.[Ключ месяца для первой выбранной даты] as
CDbl(head(existing [Выбранные дни]).item(0).Parent.Properties("Key")),
-- для Parent просто шагаем вверх на один уровень по кошерной иерархии и для даты попадаем в ее месяц
VISIBLE = 1;
30 май 18, 10:53    [21452799]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Andy_OLAP,

Не получается. Вывожу в разрезе месяцев (чтобы видеть не итог, а динамику по месяцам) - для каждого месяца выводит тот же месяц, минимальная дата за весь период не выводится
30 май 18, 11:05    [21452844]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 2533
Max_11111
Andy_OLAP,

Не получается. Вывожу в разрезе месяцев (чтобы видеть не итог, а динамику по месяцам) - для каждого месяца выводит тот же месяц, минимальная дата за весь период не выводится

Еще раз - Ваша фраза "С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013]" и "для каждого месяца выводит тот же месяц".
Вы понимаете, в чем разница для фильтра всей сводной таблицы, где галочками выбрали январь2013:декабрь2014, и existing поднабор для уровня от existing выбора всей таблицы?

Вот Вы стоите в таблице напротив февраля 2013. Это отдельный срез из куба. Формулы внутри этого среза не знают, что этот месяц прилетел из мультиселект набора из измерения, не знают, что будет в общем итоге, не знают, сколько вообще месяцев в измерении, может быть, сейчас там только физически один февраль 2013.

Есть контекст выбора для общего итога, есть контекст выбора для уровня, который Вы видите в столбце/строке. Надеюсь, более понятно пояснил?
30 май 18, 11:16    [21452910]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 2533
Max_11111,

Как бы еще раз. Когда Вы стоите напротив февраля 2013 - никто не знает, что первый выбор наверху был январь 2013 и сравнивать нужно с ним.

Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.
30 май 18, 11:18    [21452923]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Andy_OLAP
Max_11111,
Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.

Сработало, спасибо!
30 май 18, 11:35    [21453028]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Andy_OLAP
Как бы еще раз. Когда Вы стоите напротив февраля 2013 - никто не знает, что первый выбор наверху был январь 2013 и сравнивать нужно с ним.
Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.

Теперь с такой проблемой столкнулся:
когда я пишу в запросе "WITH SET dt AS existing [Календарь].[День].[День]", то получаю только те дни, которые я отобрал в фильтре
когда я добавил вычисление в кубе "CREATE HIDDEN SET CURRENTCUBE.[Выбранные дни] AS EXISTING [Календарь].[День].[День]", то я получил все дни календаря.
Что я сделал не так? вычисления ведь вычисляются в момент обращения к ним пользователя, а значит должен работать фильтр по датам
31 май 18, 07:44    [21456053]     Ответить | Цитировать Сообщить модератору
 Re: MDX: сравнение периодов  [new]
Max_11111
Member

Откуда:
Сообщений: 172
Max_11111
Теперь с такой проблемой столкнулся:

Разобрался. забыл "DYNAMIC" указать
31 май 18, 07:53    [21456061]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить