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

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

Есть такой MDX-запрос.
+
SELECT
	[Время].[Дата].Children
	+
	[Время].[Дата].[All]	
ON 0,
NON EMPTY
	([Торговые точки].[Код ТТ].[Код ТТ]*
	[SKU].[SKU].[SKU])
	*
	{[Measures].[Мера1],
	[Measures].[Мера2]}
ON 1
FROM
	(SELECT
		([Время].[Дата].&[2017-07-01T00:00:00]:[Время].[Дата].&[2017-07-04T00:00:00],
		[Торговые точки].[Торговая точка].&[0000001]) ON 0 FROM PROFIT)
Получаю такую таблицу:
ТТ SKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017All
ТТ1SKU1Мера110012
ТТ1SKU1Мера200011
ТТ1SKU2Мера111013
ТТ1SKU2Мера201012
........................


Нужно добавить вычисляемую меру и отображалась для той строки, где присутствует Мера1. Только на оси 0 присутствует атрибут и затрудняюсь написать правильный MDX-запрос, чтобы добавить меру.
+
WITH
MEMBER [Measures].[Вычисляемая мера1] AS
		CASE WHEN ([Время].[Дата].[All],[Measures].[Мера1])<>0 THEN
			([Время].[Дата].[All], [Measures].[Мера2]) / ([Время].[Дата].[All],[Measures].[Мера1])
		END
SELECT
	[Время].[Дата].Children
	+
	[Время].[Дата].[All]
	+
	[Measures].[Вычисляемая мера1]
ON 0,
NON EMPTY
	([Торговые точки].[Код ТТ].[Код ТТ]*
	[SKU].[SKU].[SKU])
	*
	{[Measures].[Мера1],
	[Measures].[Мера2]}
ON 1
FROM
	(SELECT
		([Время].[Дата].&[2017-07-01T00:00:00]:[Время].[Дата].&[2017-07-04T00:00:00],
		[Торговые точки].[Торговая точка].&[0000001]) ON 0 FROM PROFIT)
Результат должен быть таким
ТТ SKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017AllВычисляемая мера1
ТТ1SKU1Мера1100120.5
ТТ1SKU1Мера200011
ТТ1SKU2Мера1110130.67
ТТ1SKU2Мера201012
...........................

Подскажите, как правильно написать MDX-запрос? Учитывая, что будут добавляться еще несколько мер.
13 июл 17, 12:30    [20640251]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
ferzmikk
Учитывая, что будут добавляться еще несколько мер.
Точнее Вычисляемые меры
13 июл 17, 13:23    [20640499]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 881
Нужно добавить вычисляемую меру и отображалась для той строки, где присутствует Мера1.
НЕ ясно
напиши на примере нескольких строк
что ты хочешь получить в вычислимой мере
13 июл 17, 14:48    [20640905]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
Гулин Федор
Нужно добавить вычисляемую меру и отображалась для той строки, где присутствует Мера1.
НЕ ясно
напиши на примере нескольких строк
что ты хочешь получить в вычислимой мере

Вычисляемая Мера1 рассчитывается так All Мера2 / All Мера1, для тех строк если в третьей колонке присутствует Мера1.

Например,
В первой строке в третьей колонке есть Мера1, значит 1/2 = 0,5
Во второй строке в третьей колонке отсутствует Мера1 (там Мера2), значит пусто
В третье строке в третьей колонке есть Мера1, значит 2/3 = 0,67
В четвертой строке в третьей колонке отсутствует Мера1 (там Мера2), значит пусто

К сообщению приложен файл. Размер - 41Kb
13 июл 17, 15:21    [20641132]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 1953
ferzmikk,

Пересечь между собой меры не получится.
Либо:
ТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017All
ТТ1SKU1Мера110012
ТТ1SKU1Мера200011
ТТ1SKU1Вычисляемая мера10.5
ТТ1SKU2Мера111013
ТТ1SKU2Мера201012
ТТ1SKU2Вычисляемая мера10.67
........................


либо:
ТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017AllВычЭлИзмДАТА
ТТ1SKU1Мера1100120.5
ТТ1SKU1Мера200011
ТТ1SKU2Мера1110130.67
ТТ1SKU2Мера201012
...........................


третий вариант похож на первый, но меры будут под датами.
13 июл 17, 15:34    [20641228]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
ShIgor
ferzmikk,

Пересечь между собой меры не получится.
Либо:
ТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017All
ТТ1SKU1Мера110012
ТТ1SKU1Мера200011
ТТ1SKU1Вычисляемая мера10.5
ТТ1SKU2Мера111013
ТТ1SKU2Мера201012
ТТ1SKU2Вычисляемая мера10.67
........................
Третья строка появляется. Не совсем удобно будет.

либо:
ТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017AllВычЭлИзмДАТА
ТТ1SKU1Мера1100120.5
ТТ1SKU1Мера200011
ТТ1SKU2Мера1110130.67
ТТ1SKU2Мера201012
...........................
В принципе мне так и надо. Важно, чтобы последующие Вычисляемые меры, которые добавятся еще, смогли взять значение из ВычЭлИзмДАТА

третий вариант похож на первый, но меры будут под датами.
Третья строка все таки
13 июл 17, 15:49    [20641367]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
ShIgor
ТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017AllВычЭлИзмДАТА
ТТ1SKU1Мера1100120.5
ТТ1SKU1Мера200011
ТТ1SKU2Мера1110130.67
ТТ1SKU2Мера201012
...........................

Какой тут MDX?
13 июл 17, 18:22    [20642100]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
Как получить этот ВычЭлИзмДАТА?
14 июл 17, 10:53    [20643467]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 5997
ferzmikk,

А какой у вас мдх для исходного запроса?

Вот в негои добавьте на ось 0 вычисляемыйэлементизмерения времени, формуло для которого определите заранее
15 июл 17, 11:58    [20646701]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
В общем получился такой MDX-запрос.
+
WITH
MEMBER
	[Время].[Дата].[Вычисляемый элемент1] AS 
		(CASE WHEN
			NOT (
					([Время].[Дата].[All], [Measures].[Мера1])=0
				OR
					([Время].[Дата].[All], [Measures].[Мера2])=0
				)
			THEN
			([Время].[Дата].[All], [Measures].[Мера2]) / ([Время].[Дата].[All],[Measures].[Мера1])
			
		END)
SELECT
	[Время].[Дата].Children
	+
	[Время].[Дата].[All]
	+
	[Время].[Дата].[Вычисляемый элемент1]
ON 0,
NON EMPTY
	([Торговые точки].[Код ТТ].[Код ТТ]*
	[SKU].[SKU].[SKU])
	*
	{[Measures].[Мера1],
	[Measures].[Мера2]}
ON 1
FROM
	(SELECT
		([Время].[Дата].&[2017-07-01T00:00:00]:[Время].[Дата].&[2017-07-04T00:00:00],
		[Торговые точки].[Торговая точка].&[0000001]) ON 0 FROM PROFIT)

1. Только этот вычисляемый элемент измерения сильно влияет на производительность. Если выгружать один город и без вычисляемого элемента, то за 22 секунд. Если выгружать один город и с вычисляемым элементом, то за 2 минуты и 16 секунд. Учитывая что выгружаем по дням и количество дней - 4. Если выгружать скажем за 2-3 месяца по дням и по всем 30 городам, то MDX возможно не выдаст результат. А потом нужно добавить еще вычисляемые элементы, которые, например, берут данные из вычисляемого элемента1.

Как тут можно оптимизиировать MDX-запрос, чтобы быстрее выгружал?

2. Как в MDX-запросе правильно дописать условие, чтобы вычисляемый элемент измерения присутствовал только для тех строк, где есть "Мера1"?
16 июл 17, 10:29    [20647813]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
Владимир Штепа
Member

Откуда: Hannover
Сообщений: 5997
ferzmikk,

Если в вашей системе есть данные за даты за пределами вами выбранного диапазона, то вы должны увидеть, что результат не тот, который вы ожидаете увидеть.
18 июл 17, 14:23    [20654135]     Ответить | Цитировать Сообщить модератору
 Re: Вставить дополнительные вычисляемые меры  [new]
ferzmikk
Member

Откуда:
Сообщений: 870
Владимир Штепа
ferzmikk,

Если в вашей системе есть данные за даты за пределами вами выбранного диапазона...

Что именно за данные? Можно пример для ясности. К примеру, Вы имеете ввиду не просто дата, а дата с временем? Или для каких то сочетаний атрибутов присутствует ноль, а не Null?
25 июл 17, 08:41    [20671784]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить