powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX: сравнение периодов
10 сообщений из 10, страница 1 из 1
MDX: сравнение периодов
    #39652287
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652298
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max_11111Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?
С учетом multiselect выбора по измерению дат:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
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;
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652301
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если невозможно решить задачу в таком виде, то как получить начало предыдущего года чтобы с ним сравнить?
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652305
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max_11111Есть мера, допустим продажи. Необходимо сравнить значение этой меры за текущий месяц со значением за минимальный выбранный пользователем месяц. Например,
С фильтром по датам [январь 2013]:[декабрь 2014] - данные за каждый месяц сравниваются с данными за [январь 2013].
Как получить минимальную выбранную пользователем дату?
Что касается сравнения периодов - немного не так, понадобится иерархия с днем и месяцем над ним.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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;
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652313
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,

Не получается. Вывожу в разрезе месяцев (чтобы видеть не итог, а динамику по месяцам) - для каждого месяца выводит тот же месяц, минимальная дата за весь период не выводится
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652324
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max_11111Andy_OLAP,

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

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

Есть контекст выбора для общего итога, есть контекст выбора для уровня, который Вы видите в столбце/строке. Надеюсь, более понятно пояснил?
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652326
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max_11111,

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

Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652344
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAPMax_11111,
Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.
Сработало, спасибо!
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652985
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAPКак бы еще раз. Когда Вы стоите напротив февраля 2013 - никто не знает, что первый выбор наверху был январь 2013 и сравнивать нужно с ним.
Хотя - попробуйте внутри формулы слово existing не использовать. А внутри описания динамического набора - оставить.
Теперь с такой проблемой столкнулся:
когда я пишу в запросе "WITH SET dt AS existing [Календарь].[День].[День]", то получаю только те дни, которые я отобрал в фильтре
когда я добавил вычисление в кубе "CREATE HIDDEN SET CURRENTCUBE.[Выбранные дни] AS EXISTING [Календарь].[День].[День]", то я получил все дни календаря.
Что я сделал не так? вычисления ведь вычисляются в момент обращения к ним пользователя, а значит должен работать фильтр по датам
...
Рейтинг: 0 / 0
MDX: сравнение периодов
    #39652990
Max_11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max_11111Теперь с такой проблемой столкнулся:

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


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