У меня есть кое-что из основного вопроса MDX.Мне нужно рассчитать процент от общего количества в иерархии, и у меня возникают проблемы, когда я хочу получить результирующий набор, который не включает в себя полную иерархию.
У меня довольно простое измерение, которое выглядит как
Groups
Group A
Item 1
Item 2
Item 3
Group B
Item 4
Item 5
Group C
Item 6
Item 7
Item 8
Я использую вычисленную меру, которую я нашел в своих показаниях, которая хорошо работает, если я смотрю на полную иерархию, но разваливается, когда я хочу посмотреть на подмножество.
ДляНапример,
WITH MEMBER [Measures].[Percent] AS iif([Measures].[Result Count] = 0,
NULL,
IIF(isempty( ([Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1).Dimension.CurrentMember.Parent )),1,
[Measures].[Result Count] / ( [Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1 ).Dimension.CurrentMember.Parent ))), FORMAT_STRING ="#,##0.00 %;-#,##0.00 %"
SELECT
{ [Measures].[Result Count],[Measures].[Percent] } ON COLUMNS,
{ [Groups].[Group Participation]} ON ROWS
FROM [Cube]
Я получаю следующее:
Result Count Percent
Group A 1541 11.92 %
Group B 2300 17.79 %
Group C 9086 70.29 %
Что прекрасно работает.Однако, если я хочу только Группу B и Группу C:
WITH MEMBER [Measures].[Percent] AS iif([Measures].[Result Count] = 0,
NULL,
IIF(isempty( ([Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1 ).Dimension.CurrentMember.Parent )),1,
[Measures].[Result Count] / ( [Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1 ).Dimension.CurrentMember.Parent ))), FORMAT_STRING ="#,##0.00 %;-#,##0.00 %"
SELECT
{ [Measures].[Result Count],[Measures].[Percent] } ON COLUMNS,
{ [Groups].[Group Participation].&[1],[Groups].[Group Participation].&[2]} ON ROWS
FROM [Cube]
, я получаю следующее:
Result Count Percent
Group B 2300 17.79 %
Group C 9086 70.29 %
Я хочу
Result Count Percent
Group B 2300 20.20 %
Group C 9086 79.79 %
По сути, мне нужносумма процентов, чтобы сложить до 100.
Мне также это нужно для работы на конечных узлах.когда я изменяю статус, чтобы вернуть только пункт 4, пункт 5, пункт 6
WITH MEMBER [Measures].[Percent] AS iif([Measures].[Result Count] = 0,
NULL,
IIF(isempty( ([Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1 ).Dimension.CurrentMember.Parent )),1,
[Measures].[Result Count] / ( [Measures].[Result Count], Axis(1)(0)( Axis(1)(0).Count - 1 ).Dimension.CurrentMember.Parent ))), FORMAT_STRING ="#,##0.00 %;-#,##0.00 %"
SELECT
{ [Measures].[Result Count],[Measures].[Percent] } ON COLUMNS,
{ [Groups].[Group].&[4],[Groups].[Group].&[5],[Groups].[Group].&[6]} ON ROWS
FROM [Cube]
я получаю следующее:
Result Count Percent
Item 4 103 4.48 %
Item 5 12 0.52 %
Item 6 455 19.78 %
Я хочу получить
Result Count Percent
Item 4 103 18.07 %
Item 5 12 2.10 %
Item 6 455 79.82 %
Я чувствую, что упускаю что-то очень простое.Что я делаю не так в моей рассчитанной мере?
Заранее спасибо.