2014-10-09 2 views
1

У меня есть MDX запрос:MDX гранд общего процент расчет

select NON EMPTY [TYPE].[All TYPEs].Children ON COLUMNS, 
    NON EMPTY [CITY].[All CITYs].Children ON ROWS 
from [DW_CUBE] 
where [REGION].[MADRID] 

Этот запрос с указанием количества записей с конкретными типами агрегированных по городу, для конкретного региона (Мадрид в данном случае).

CITY  TYPE A TYPE B 
MADRID  234  234 
COLMENAR 123  234 
TRES CANTOS 324  12312 

мне нужно, чтобы показать значения в процентах от общего числа записей в кубе (то есть сумма всех значений, отображаемых в запросе). Например:

CITY  TYPE A TYPE B 
MADRID  1,74% 1,74% 
COLMENAR 0,91% 1,74% 
TRES CANTOS 2,41% 91,46% 

Могу ли я это сделать с помощью функций MDX? Любая помощь будет оценена по достоинству. Я использую Mondrian как двигатель.

Благодаря

Рафаэль

ответ

3

В Analysis Services, я хотел бы использовать

with member [Measures].[Percent] as 
      [Measures].DefaultMember 
      /
      (Measures.DefaultMember, [TYPE].[All TYPEs].[All], [CITY].[All CITYs].[All]) 
      ,format_string = '0.00%' 
select NON EMPTY [TYPE].[All TYPEs].Children ON COLUMNS, 
    NON EMPTY [CITY].[All CITYs].Children ON ROWS 
from [DW_CUBE] 
where ([REGION].[MADRID], [Measures].[Percent]) 

Я не уверен, если это работает в Мондриана. Я угадываю имена All членов [All TYPEs] и [All CITYs] здесь. Я также вижу из вашего запроса, что вы используете стандартную меру куба (так как вы не указали меру во всем запросе). Если это не так, просто замените [Measures].DefaultMember на меру, которую вы хотите использовать в качестве основы для расчета процентов.

+0

Спасибо, сейчас это работает –

1
(
    Axis(1).Item(1).Hierarchy.CurrentMember 
    ,[Measures].[task] 
) 
/
    Sum 
    (
    Axis(1) 
    ,[Measures].[task] 
) 
+2

Пожалуйста, объясните свой ответ. SO существует для обучения людей, а не просто ответов на вопросы – Machavity

Смежные вопросы