powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX запрос на вычисление суммы вышестоящего ур. иерархии.
3 сообщений из 3, страница 1 из 1
MDX запрос на вычисление суммы вышестоящего ур. иерархии.
    #39686915
Vasiliev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Помогите с mdx запросом на вычисление суммы вышестоящего ур. иерархии.
Есть таблица, на основе которой построено измерение "Номенклатура"
Таблица для номенклатуры
IDID_ParentName000001nullБакалея294728000001Сахар белый275234000001Сахар тросниковый342562294728Бренд1353456294728Бренд2967456342562Сахар белый 1кг923611342562Сахар белый 0.8кг962351253456Сахар рафинад 0.5 кг386567275234Бренд3923516386567Сахар тросниковый 0.5 кг973345386567Сахар тросниковый 0.8 кг



В измерении создан атрибут "Ном-ра" тип Parent.
В таблицу фактов пишется Дата, ИД товара, Продажа
Необходимо для каждой элемента уровня в измерении Номенклатура получить сумму продаж по вышестоящему уровню(если он есть).
То есть в итоге должна получиться такая таблица
level2level3level4level5СуммаСумма_верхнего уровняБакалеяСахар белыйБренд1Сахар белый 1кг160186Сахар белый 0.8кг26186Total186270Бренд2Сахар рафинад 0.5 кг8484Total84270Total270286Сахар тросниковыйБренд3Сахар тросниковый 0.5 кг1116Сахар тросниковый 0.8 кг516Total1616Total16286Grand Total286
...
Рейтинг: 0 / 0
MDX запрос на вычисление суммы вышестоящего ур. иерархии.
    #39687182
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliev Anton,

судя по первой таблице это parent-child иерархия, с ней .parent прекрасно работает, если есть желание можно ещё какую-нибудь проверку уровня через .level.ordinal добавить
например
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
...
Рейтинг: 0 / 0
MDX запрос на вычисление суммы вышестоящего ур. иерархии.
    #39687404
Vasiliev Anton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkiv, Благодарю за помощь.

Сделал так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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].[Продажа руб Гр] - отсекает товары, которые есть в измерении Номенклатура, но продаж по ним не было.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX запрос на вычисление суммы вышестоящего ур. иерархии.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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