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

Откуда:
Сообщений: 1071
Здравствуйте!

Есть задача. По строкам выводить ТТ. По колонкам SKU (Всего 10). Мера - количество отгруженных ТТ. Но фишка в том, что для SKU1 выгружаются данные за 46 и 47 неделю, а остальные SKU - 47.

Написал такой MDX-запрос.

+
WITH
SET [Неделя1] AS [Время].[Неделя года].&[46]
SET [Неделя2] AS [Время].[Неделя года].&[47]

MEMBER [Measures].[SKU1] AS
	SUM(
		{([SKU].[SKU].&[SKU1],		
		{[Неделя1], [Неделя2])},
		[Measures].[Отгрузки количество ТТ])
		
MEMBER [Measures].[SKU2] AS
	SUM(
		{([SKU].[SKU].&[SKU2],		
		{[Неделя2]})},
		[Measures].[Отгрузки количество ТТ])
		
MEMBER [Measures].[SKU3] AS
	SUM(
		{([SKU].[SKU].&[SKU3],		
		[Неделя2])},
		[Measures].[Отгрузки количество ТТ])
...

SELECT
{[Measures].[SKU1],
[Measures].[SKU2],
[Measures].[SKU3],
[Measures].[SKU4],
[Measures].[SKU5],
[Measures].[SKU6],
[Measures].[SKU7],
[Measures].[SKU8],
[Measures].[SKU9],
[Measures].[SKU10]} on 0,
NON EMPTY
[Торговые точки].[Код ТТ].[Код ТТ]
 on 1 
	From (SELECT ([SKU].[SKU Группа].&[1],
		[Время].[Год].&[2016-01-01T00:00:00],
		{[Время].[Неделя года].&[46],[Время].[Неделя года].&[47]},
                {[SKU].[SKU].&[SKU1],
                 [SKU].[SKU].&[SKU2],
                 [SKU].[SKU].&[SKU3],
                 [SKU].[SKU].&[SKU4],
                 [SKU].[SKU].&[SKU5],
                 [SKU].[SKU].&[SKU6],
                 [SKU].[SKU].&[SKU7],
                 [SKU].[SKU].&[SKU8],
                 [SKU].[SKU].&[SKU9],
                 [SKU].[SKU].&[SKU10]}
                 ) ON 0 FROM [Profit])

Запрос работает. Но мне кажется я его сложно написал. Учитывая что часто придется менять недели, и возможно SKU (не только менять, а еще добавлять и/или удалять). Учитывая, что еще есть субкуб.

Как можно написать этот запрос более оптимально и динамично?
25 ноя 16, 09:46    [19932670]     Ответить | Цитировать Сообщить модератору
 Re: Оцените запрос  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3535
ferzmikk,

Вам нужно освоить SCOPE и расписать расчеты под каждый уровень иерархии календаря, где есть отличия.

Также посмотрите функции EXISTING и CURRENTMEMBER

Вообще MDX не простая тема, но вы похоже начали в неё въезжать
25 ноя 16, 12:44    [19933780]     Ответить | Цитировать Сообщить модератору
 Re: Оцените запрос  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3535
ferzmikk,

Если что, заглядывайте на огонёк
25 ноя 16, 12:47    [19933806]     Ответить | Цитировать Сообщить модератору
 Re: Оцените запрос  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3535
a_voronin,

https://hh.ru/vacancy/18657638?query=Вайлдберриз
25 ноя 16, 12:52    [19933831]     Ответить | Цитировать Сообщить модератору
 Re: Оцените запрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 1071
Такой запрос
+
WITH
MEMBER [Measures].[SKU1] AS
	SUM(
		{([SKU].[SKU].&[SKU1],		
		{[Время].[Неделя года].&[51],   [Время].[Неделя Года].&[52]})},
		[Measures].[Отгрузки количество ТТ])
SELECT
[Measures].[SKU1] on 0,
NON EMPTY
[Торговые точки].[Код ТТ].[Код ТТ]
ON 1 
	From (SELECT (	[SKU].[SKU].[SKU1],
					[Время].[Год].&[2016-01-01T00:00:00],
					[Торговые точки].[Код ТТ].&[1]
					) ON 0 FROM [Profit])
Дает такой результат
ТТSKU1
ТТ11


В субкуб в кортеж добавляю недели. Теже самые недели, которые в Member.
+
WITH
MEMBER [Measures].[SKU1] AS
	SUM(
		{([SKU].[SKU].&[SKU1],		
		{[Время].[Неделя года].&[51],   [Время].[Неделя Года].&[52]})},
		[Measures].[Отгрузки количество ТТ])
SELECT
[Measures].[SKU1] on 0,
NON EMPTY
[Торговые точки].[Код ТТ].[Код ТТ]
ON 1 
	From (SELECT (	[SKU].[SKU].[SKU1],
					{([Время].[Год].&[2016-01-01T00:00:00],  [Время].[Неделя года].&[51]),
						([Время].[Год].&[2016-01-01T00:00:00],  [Время].[Неделя Года].&[52])},
					   [Торговые точки].[Код ТТ].&[1]
					) ON 0 FROM [Profit])
Дает такой результат
ТТSKU1

По идее в результате должна отображаться ТТ1. А ее нету. Это нормально?
17 янв 17, 11:24    [20113508]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить