powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX-запрос
3 сообщений из 3, страница 1 из 1
MDX-запрос
    #39810409
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть справочная таблица.

Справочная таблицаДата День недели Даты Соответствующая дата предыдущего года День недели соответствующей даты предыдущего года Номер недели29.04.2019 Пн 30.04.2018 Пн 530.04.2019 Вт 01.05.2018 Вт 501.05.2019 Ср 02.05.2018 Ср 102.05.2019 Чт 03.05.2018 Чт 103.05.2019 Пт 04.05.2018 Пт 104.05.2019 Сб 05.05.2018 Сб 105.05.2019 Вс 06.05.2018 Вс 106.05.2019 Пн 07.05.2018 Пн 207.05.2019 Вт 08.05.2018 Вт 208.05.2019 Ср 09.05.2018 Ср 209.05.2019 Чт 10.05.2018 Чт 210.05.2019 Пт 11.05.2018 Пт 2...............

Нужно выгрузить такую таблицу
Региона города Город 2019 (заданный период) 2018 (соответствующие даты) 2019 (соответствующая неделя)Регион города1Город1 40 50 30Регион города1Город2 50 60 20Регион города2Город3 40 65 30Регион города2Город4 30 50 20...............
Суть заключается в том, что по каждому городу сравниваются количество ТТ для заданного периода (Мера1) с соответствующими днями предыдущего года (Мера2) с учетом дня недели и высокосного года. А также соответствующие даты последней недели в заданном периоде (Мера3). Номер недели начинается с первого числа месяца, нумерация по пн. См. пример ниже.

Логика выгрузки следующая. Нужно выгрузить с 1 по 7 мая 2019. Для первой меры это с 1 по 7 мая 2019 как и по условию. Для второй меры это с 2 по 8 числа 2018 года. А в третьей мере - окончание периода это 7 мая 2019 года и по справочной таблице это 2 неделя, то берется даты последней недели в заданном периоде: 6 и 7 мая 2019 года.

Таким образом, в запросе в фильтре задаем период с 1 по 7 мая 2019, а все остальное подтягивалось автоматически согласно формулам.

Предполагаю, что справочную таблицу можно задать ввиде формулы в MEMBER. Дни недели не нужно прописывать в формуле, так как это для информации и понимание примера. Пробую все сделать в MDX-запросе - запутался. Не знаю реализуема ли такая задача или нет.

MDX-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
WITH
MEMBER [Время].[Месяц].[Заданный период] AS
	AGGREGATE ({[Время].[Дата].&[2019-05-01T00:00:00]:[Время].[Дата].&[2019-05-07T00:00:00]})
MEMBER [Measures].[Отгрузки количество ТТ 2019] AS
	([Measures].[Отгрузки количество ТТ],[Время].[Месяц].[Заданный период])
//MEMBER [Measures].[Отгрузки количество ТТ 2018. Соответствующие дни] AS
//MEMBER [Measures].[Отгрузки количество ТТ 2019. Соответствующая неделя] AS
SELECT
{[Measures].[Отгрузки количество ТТ 2018]}
ON 0,
[Города].[Регион города].[Регион города]*
[Города].[Город].[Город]
ON 1
FROM
	(SELECT 
		([Время].[Год].&[2018-01-01T00:00:00]:[Время].[Год].&[2019-01-01T00:00:00],
                 {[Продукция].[Общий бренд].&[5],
		           [Продукция].[Общий бренд].&[11],
		           [Продукция].[Общий бренд].&[18]},
                  [Торговые точки].[Тип клиента].&[2])
	ON 0 FROM PROFIT)


Скажите, по такой задаче реально написать MDX-запрос? Если да, то как правильно написать MDX-запрос?
...
Рейтинг: 0 / 0
MDX-запрос
    #39810507
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот MDX-запрос для Power BI. Если это такой MDX-запрос нельзя написать, то придется делать вторичную обработку в Power BI.
...
Рейтинг: 0 / 0
MDX-запрос
    #39811174
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, ПЕРЕФОРМУЛИРУЮ ЗАДАЧУ ПО ДРУГОМУ И ПО ПРОЩЕ.

В Power BI нужно получить такую таблицу
Региона города Город Отгрузки количество ТТ. С начала месяца вчерашнего дня по вчерашний деньОтгрузки количество ТТ. С начала месяца вчерашнего дня по вчерашний день. Предыдущий годОтгрузки количество ТТ. Последняя пройденная неделя (пн-вс)Регион города1Город1 40 50 30Регион города1Город2 50 60 20Регион города2Город3 40 65 30Регион города2Город4 30 50 20...............
По данной задаче подобрал такое решение, что для получения каждой меры пишется отдельный MDX-запрос. И потом Power BI соединяет в одну таблицу.

Есть простой работающий первый MDX-запрос.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT
	{[Measures].[Отгрузки количество ТТ]}
ON 0,
	[Города].[Регион города].[Регион города]*
        [Города].[Город].[Город]
ON 1
FROM
	(SELECT ([Время].[Дата].&[2019-05-01T00:00:00]:[Время].[Дата].&[2019-06-05T00:00:00],		
		 {[Города].[Город].[Город]-
			[Города].[Город].&[37]},
		 {[Продукция].[Общий бренд].&[5],
		        [Продукция].[Общий бренд].&[11],
		        [Продукция].[Общий бренд].&[18]},
                  [Торговые точки].[Тип клиента].&[2])
	) ON 0 FROM PROFIT)


Есть еще два таких же MDX-запроса, но с другими периодами:
Код: sql
1.
[Время].[Дата].&[2018-05-02T00:00:00]:[Время].[Дата].&[2018-05-07T00:00:00]


Код: sql
1.
[Время].[Дата].&[2019-04-29T00:00:00]:[Время].[Дата].&[2019-05-05T00:00:00]


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

Скажите,
1. Как в Power BI сделать так, чтобы в нужный день выгружались запросы с соответствующими заданными периодами? Как из справочника вытягивать периоды для MDX-запросов?
2. Как Вы оцениваете решение данной задачи? Какое есть более оптимальное решение для данной задачи, типа использовать один MDX-запрос, где выгружаются данные по дням за последние 14 месяцев?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX-запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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