Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вставить дополнительные вычисляемые меры / 12 сообщений из 12, страница 1 из 1
13.07.2017, 12:30
    #39488256
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
Здравствуйте!

Есть такой MDX-запрос.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
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-запрос, чтобы добавить меру.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
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Мера110012 0.5 ТТ1SKU1Мера200011ТТ1SKU2Мера111013 0.67 ТТ1SKU2Мера201012...........................
Подскажите, как правильно написать MDX-запрос? Учитывая, что будут добавляться еще несколько мер.
...
Рейтинг: 0 / 0
13.07.2017, 13:23
    #39488348
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
ferzmikkУчитывая, что будут добавляться еще несколько мер.Точнее Вычисляемые меры
...
Рейтинг: 0 / 0
13.07.2017, 14:48
    #39488441
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
Нужно добавить вычисляемую меру и отображалась для той строки, где присутствует Мера1.
НЕ ясно
напиши на примере нескольких строк
что ты хочешь получить в вычислимой мере
...
Рейтинг: 0 / 0
13.07.2017, 15:21
    #39488485
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
Гулин Федор Нужно добавить вычисляемую меру и отображалась для той строки, где присутствует Мера1.
НЕ ясно
напиши на примере нескольких строк
что ты хочешь получить в вычислимой мере
Вычисляемая Мера1 рассчитывается так All Мера2 / All Мера1 , для тех строк если в третьей колонке присутствует Мера1.

Например,
В первой строке в третьей колонке есть Мера1, значит 1/2 = 0,5
Во второй строке в третьей колонке отсутствует Мера1 (там Мера2), значит пусто
В третье строке в третьей колонке есть Мера1, значит 2/3 = 0,67
В четвертой строке в третьей колонке отсутствует Мера1 (там Мера2), значит пусто
...
Рейтинг: 0 / 0
13.07.2017, 15:34
    #39488503
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...........................

третий вариант похож на первый, но меры будут под датами.
...
Рейтинг: 0 / 0
13.07.2017, 15:49
    #39488521
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
ShIgorferzmikk,

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

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

третий вариант похож на первый, но меры будут под датами.Третья строка все таки
...
Рейтинг: 0 / 0
13.07.2017, 18:22
    #39488629
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
ShIgorТТSKUMeasuresLevel01.07.201702.07.201703.07.201704.07.2017All ВычЭлИзмДАТА ТТ1SKU1Мера1100120.5ТТ1SKU1Мера200011ТТ1SKU2Мера1110130.67ТТ1SKU2Мера201012...........................
Какой тут MDX?
...
Рейтинг: 0 / 0
14.07.2017, 10:53
    #39488902
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
Как получить этот ВычЭлИзмДАТА ?
...
Рейтинг: 0 / 0
15.07.2017, 11:58
    #39489479
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
ferzmikk,

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

Вот в негои добавьте на ось 0 вычисляемыйэлементизмерения времени, формуло для которого определите заранее
...
Рейтинг: 0 / 0
16.07.2017, 10:29
    #39489657
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
В общем получился такой MDX-запрос.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
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"?
...
Рейтинг: 0 / 0
18.07.2017, 14:23
    #39490827
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
ferzmikk,

Если в вашей системе есть данные за даты за пределами вами выбранного диапазона, то вы должны увидеть, что результат не тот, который вы ожидаете увидеть.
...
Рейтинг: 0 / 0
25.07.2017, 08:41
    #39494351
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставить дополнительные вычисляемые меры
Владимир Штепаferzmikk,

Если в вашей системе есть данные за даты за пределами вами выбранного диапазона...
Что именно за данные? Можно пример для ясности. К примеру, Вы имеете ввиду не просто дата, а дата с временем? Или для каких то сочетаний атрибутов присутствует ноль, а не Null?
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вставить дополнительные вычисляемые меры / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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