Quantcast
Channel: SQL.ru: OLAP и DWH
Viewing all articles
Browse latest Browse all 1167

Прокидывание axis(1) при вычислении topsum or topcount в SSAS studio 2012

$
0
0
Доброе время суток дорогие форумчане.

Вопрос очень интересный, помогите его решить.

Задача такая:
Допустим есть 3 измерения:

1.Объекты:
Иерархия
1. Страна
2. Регион
3. Город
(атрибуты автомойки)
2. Период
Иерархия
1.Год.
2. Месяц.
3. День.
(без времени)

3. Статьи затрат
1. уровень 1
2. уровень 2
3. уровень 3
Связи (обычные)
Ну и таблица фактов с суммами статей( продажа, потери, зп, украли отдали ну и так далее)

Что необходимо.

Сделать так чтобы можно было выбрать любой разрез по измерениям и выдало 2 топовых строк (по сумме из таблице фактов) любого уровня измерения.
Т.е.
К примеру накидываю в Exsel строки измерение страны, статьи уровень 2 ,и колонки по периоду к примеру год.

Будет примерно так
 Статьи	                                2016	2017	2018
Россия	Материальные издержки	        6000	9000	10000
	Амортизация основных средств	5000	7000	24500

При исходных данных

Статьи
Материальные издержки 6000
Амортизация основных средств 5000
Издержки 4000
Обязательные начисления 3000
Оплата услуг сторонних организаций 2000
Прочие затраты 1000


MDX запрос через topsum можно написать

select
{[MEASURES].[СУММА]} on 0,
 (
  topsum(
		 [Статьи затрат].[уровень 1].MEMBERS
                , 2
		, [MEASURES].[СУММА]
          ) 
		  )on 1
 FROM [КУБ] 


Но это статические данные получиться, так как Я указал разрез статей, а надо перехватывать выбранное измерение и выдавать топ по статьям.


В студии можно через
CREATE DYNAMIC SET CURRENTCUBE.


Но не получается прокидывать axis (1), он ругается либо так

"Номер ошибки Функция ожидает для аргумента строчное или числовое выражение. Было использовано выражение набора кортежей.
"
либо
Была попытка сослаться на ось среза.

Народ помогите, ибо разберусь и понесу знания в народ)))

Спасибо.

Viewing all articles
Browse latest Browse all 1167

Latest Images

Trending Articles