2016-05-13 3 views
0

Я пытаюсь написать запрос mdx, который будет вычислять процент дохода для каждого продукта в трех разных столбцах, в зависимости от процентной доли «базы» - дохода группы (дохода продукта), доход подгруппы и общий доход. До сих пор это мой кодпроцент вычисления в MDX

with 
member [Measures].[Percent] as 
([Measures].[Income])/
([Products].[product].currentmember.parent, 
[Measures].[Income]) 
,format_string = "percent" 

select 
    { 
     [Measures].[Percent] 
    } 
    on columns, 
    { 
     [Products].[Product].[Product] 
    } 
    on rows 
from [CUBE] 

Это Вычисляет общегодовую процент на основе общего дохода, но я понятия не имею, как изменить код, чтобы заполнить критерии я уже упоминал ранее. Я пытался rearrenging Кодекса много раз по-разному, (пытаясь вычислить процентный sobgroup примера)

with 
member [Measures].[Percent] as 
([Measures].[Income], [Products].[Subgroup])/
([Products].[product].currentmember.parent, 
[Measures].[Income]) 
,format_string = "percent" 

т.д., но я только получить тот же результат или ошибку. Я все еще очень новичок в mdx, поэтому любая помощь или подсказка будут очень оценены.

+0

У вас есть продукт - иерархия подгрупп в месте? – SouravA

+0

Иерархия - это группа - подгруппа - продукт – some

+0

, но будет иерархия пользователей с уровнями в ней. И будут отдельные иерархии атрибутов для каждого уровня в иерархии пользователей. Можете ли вы добавить ссылку на изображение структуры иерархии? – whytheq

ответ

0

Я еще немного неуверен требований, но вы можете добавить дополнительный родителю, если вам нравится:

WITH 
MEMBER [Measures].[Percent_ofSubCategory] as 
    DIVIDE(
    [Measures].[Income] 
    ,([Measures].[Income], [Towary].[Hierarchy].currentmember.parent) 
    ) 
,format_string = "percent" 
MEMBER [Measures].[Percent_ofCategory] as 
    DIVIDE(
    [Measures].[Income] 
    ,([Measures].[Income], [Towary].[Hierarchy].currentmember.parent.parent) 
    ) 
,format_string = "percent" 
MEMBER [Measures].[Percent_ofAll] as 
    DIVIDE(
    [Measures].[Income] 
    ,([Measures].[Income], [Towary].[Hierarchy].[All]) 
    ) 
,format_string = "percent" 
SELECT 
    { 
     [Measures].[Percent_ofSubCategory] 
    ,[Measures].[Percent_ofCategory] 
    ,[Measures].[Percent_ofAll] 
    } 
    on 0, 
    [Towary].[Hierarchy].[Towar].[Towar].members 
    on 1 
from [CUBE]; 
+0

** [ИЗОБРАЖЕНИЕ] (http://www48.zippyshare.com/i/PxGUER4d/9174863/percent.png) ** Является результатом вашего запроса. Иерархией является Group - Subgroup - Product. – some

+0

Я изменил свой сценарий, но я думаю, что вы используете иерархию атрибутов - существует ли многоуровневая иерархия пользователей в вашем кубе? – whytheq

+0

Большое спасибо за ваше время, но результат сценария по-прежнему остается прежним. Я не уверен, отвечает ли он на ваш вопрос, но у куба есть 2 вида мер (фактические данные и запланированный результат) и 4 измерения (время, клиенты, регионы, продукты), каждое измерение, помимо клиента и региона, имеет свою иерархию , Вот ** [ИЗОБРАЖЕНИЕ] (http://www110.zippyshare.com/i/9ZZSaudh/1429523/hierarchy.png) ** иерархии продуктов – some

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