Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / mdx в кубе процент от тотала меры / 4 сообщений из 4, страница 1 из 1
12.06.2017, 13:48
    #39470463
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdx в кубе процент от тотала меры
Добрый день всем.

Есть мера считающиеся как Distinct Count : [# of Patients with Medication]
Надо показасть связку
{ лекарство - Мера (кол-во) - Процент от меры - от общего числа }

Гуи не позваоляет показать процент - поэтому надо засунуть в куб вычисилмую метрику
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/af950e5f-9f66-4ccc-ad20-7debcf2b7498/how-to-calculate-percentage-in-mdx?forum=sqlanalysisservices

вот отсюда взял идею
CREATE MEMBER CURRENTCUBE.[Measures].[Total TransactionAmount] AS
SUM([Geography].[GeographyHierarchy].[All Geography level].CHILDREN, [Measures].[TransactionAmount]),

адаптировал под себя - получил 2 меры

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE MEMBER CURRENTCUBE.[Measures].[Total Patients with Medication]   
AS ( 
-- [Dim Medication].[Medication Code and Name].currentmember.parent , [Measures].[# of Patients with Medication] 
SUM( [Dim Medication].[Medication].currentmember.children 			, [Measures].[# of Patients with Medication] )
) 

-- to count Percent If NULL --> NULL
CREATE MEMBER CURRENTCUBE.[Measures].[% of Patients with Medication]   
AS 
(
 IIF ( [Measures].[Total Patients with Medication] = NULL , NULL  , [Measures].[# of Patients with Medication]  / [Measures].[Total Patients with Medication]   )
)  


Рабоатет ок когда я
в запросе выбираю любой НЕ ключевой атрибут дименшена
[Dim Medication].[Medication Code and Name]
[Dim Medication].[Medication Code]
Все ОК - считатет и показывает верный процент

как только выношу ключевой [Dim Medication].[Medication]
(ид атрибута - код , namedcolumn = имя )
- везде NULL
вот MDX (с [Medication Code and Name] работате ок )

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT NON EMPTY { [Measures].[# of Patients with Medication]  , [Measures].[Bridge Event Medication Count]
, [Measures].[% of Patients with Medication]
-- , [Measures].[Total Patients with Medication] 
} 
ON COLUMNS
, 
NON EMPTY { (
[Dim Medication].[Medication].ALLMEMBERS
--[Dim Medication].[Medication Code and Name].[Medication Code and Name].AllMembers

) } 
ON ROWS 
FROM [Simply Connect DWH]



Подозрвеаю что не достаточно понимаю
Код: sql
1.
SUM( [Dim Medication].[Medication].currentmember.children 			, [Measures].[# of Patients with Medication] )



Мне надо выдать процент для обоих случаев в разных датасетах (особенность ГУИ)
и для [Dim Medication].[Medication]
и для [Dim Medication].[Medication Code and Name].[Medication Code and Name]


любые идеи велкам
...
Рейтинг: 0 / 0
12.06.2017, 15:21
    #39470509
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdx в кубе процент от тотала меры
попробую переформулировать проще
как счиать в кубе процент от итога по count distinct Мере
в общем случае.
...
Рейтинг: 0 / 0
13.06.2017, 09:55
    #39470709
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdx в кубе процент от тотала меры
Гулин Федор,

Какой смысл суммировать DC? тогда уж Aggregate..
Пациент может принимать несколько лекарств, но для уровня все лекарства он все-равно один.
Возьмите просто значение от парента, да и поделите, если же всегда надо считать от общего количества в многоуровневой иерархии поделите на All

Код: sql
1.
2.
3.
4.
5.
6.
with member aa as [Measures].[Customer Count]
member bb as [Measures].[Customer Count] / ([Product].[Product Categories].CurrentMember.Parent, [Measures].[Customer Count] ), format='percent'
member cc as [Measures].[Customer Count] / ([Product].[Product Categories].[All Products], [Measures].[Customer Count] ), format='percent'
select {aa, bb, cc} on 0,
Descendants([Product].[Product Categories].[All],,SELF_AND_AFTER) on 1
from [Adventure Works]



в вычислении bb необходимо добавить обработку уровня All, иначе результат = inf.
...
Рейтинг: 0 / 0
13.06.2017, 13:27
    #39470923
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdx в кубе процент от тотала меры
ShIgor,
БОЛЬШОЕ СПАСИБО
обязательно посмотню подробней
я запустил запрос - вижу но пока не р

сам выкрутился
приходится делать по 2 меры по каждой иеррахии где надо
просто подбиваю проценты по Children

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE MEMBER CURRENTCUBE.[Measures].[Total_Patient_with_medication_by_Eventtype]   AS ( 
	SUM( [Dim Event Type].[Event Type].[All].Children , [Measures].[# of Patients with Medication] )
) 
,  ASSOCIATED_MEASURE_GROUP = 'Bridge Event Medication'
;

CREATE MEMBER CURRENTCUBE.[Measures].[% of Patients with Medication by Event type]   
AS 
(  
IIF ( [Measures].[Total_Patient_with_medication_by_Eventtype] = NULL , NULL  , [Measures].[# of Patients with Medication]  / [Measures].[Total_Patient_with_medication_by_Eventtype]   )
 )
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / mdx в кубе процент от тотала меры / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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