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

Откуда:
Сообщений: 21
Доброго времени суток.
Помогите с mdx запросом на вычисление суммы вышестоящего ур. иерархии.
Есть таблица, на основе которой построено измерение "Номенклатура"
+ Таблица для номенклатуры

IDID_ParentName
000001nullБакалея
294728000001Сахар белый
275234000001Сахар тросниковый
342562294728Бренд1
353456294728Бренд2
967456342562Сахар белый 1кг
923611342562Сахар белый 0.8кг
962351253456Сахар рафинад 0.5 кг
386567275234Бренд3
923516386567Сахар тросниковый 0.5 кг
973345386567Сахар тросниковый 0.8 кг



В измерении создан атрибут "Ном-ра" тип Parent.
В таблицу фактов пишется Дата, ИД товара, Продажа
Необходимо для каждой элемента уровня в измерении Номенклатура получить сумму продаж по вышестоящему уровню(если он есть).
То есть в итоге должна получиться такая таблица
+
level2level3level4level5СуммаСумма_верхнего уровня
БакалеяСахар белыйБренд1Сахар белый 1кг160186
Сахар белый 0.8кг26186
Total186270
Бренд2Сахар рафинад 0.5 кг8484
Total84270
Total270286
Сахар тросниковыйБренд3Сахар тросниковый 0.5 кг1116
Сахар тросниковый 0.8 кг516
Total1616
Total16286
Grand Total286
13 авг 18, 14:37    [21640540]     Ответить | Цитировать Сообщить модератору
 Re: MDX запрос на вычисление суммы вышестоящего ур. иерархии.  [new]
vikkiv
Member

Откуда: London
Сообщений: 1689
Vasiliev Anton,

судя по первой таблице это parent-child иерархия, с ней .parent прекрасно работает, если есть желание можно ещё какую-нибудь проверку уровня через .level.ordinal добавить
например
with member[Measures].[A]as([Account].[Accounts].parent,[Measures].[Amount])
member[Measures].[X]as[Account].[Accounts].level.ordinal
member[Measures].[Y]as[Account].[Accounts].level.name
member[Measures].[Z]as[Account].[Accounts].parent.name
select{[Measures].[Amount],[Measures].[A],[Measures].[X],[Measures].[Y],[Measures].[Z]}on 0,
non empty[Account].[Accounts].allmembers
having isnumeric([Measures].[Amount])and not isempty([Measures].[Amount])
on 1from[Adventure Works]where([Date].[Calendar Year].&[2013],[Department].[Departments].&[3]
,[Organization].[Organizations].&[14],[Destination Currency].[Destination Currency Code].&[100]
,[Scenario].[Scenario].&[1])cell properties value
14 авг 18, 00:48    [21641238]     Ответить | Цитировать Сообщить модератору
 Re: MDX запрос на вычисление суммы вышестоящего ур. иерархии.  [new]
Vasiliev Anton
Member

Откуда:
Сообщений: 21
vikkiv, Благодарю за помощь.

Сделал так:
CREATE MEMBER CURRENTCUBE.[Measures].[_Продажа руб Гр]
 AS ([Номенклатура].[Ном-ра].parent,[Measures].[Продажа руб]), 
VISIBLE = 0  ; 

CREATE MEMBER CURRENTCUBE.[Measures].[Продажа руб Гр]
 AS IIF([Measures].[Продажа руб]>0, [Measures].[_Продажа руб Гр], null), 
FORMAT_STRING = "#,#.00", 
VISIBLE = 1  ; 


[Measures].[_Продажа руб Гр] - считает сумму продаж по родительской группе в иерархии.
[Measures].[Продажа руб Гр] - отсекает товары, которые есть в измерении Номенклатура, но продаж по ним не было.
14 авг 18, 12:27    [21641696]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить