Расчет SSAS и MDX - PullRequest
       9

Расчет SSAS и MDX

0 голосов
/ 08 июня 2018

Я не могу понять, как превратить это выражение вычисления SSAS в запрос MDX, чтобы я мог оценить части вычисления.Пожалуйста, помогите!

Расчет применяется к кубу с размерами: Год, Месяц, Магазин, Отдел и Учетная запись.У него также есть 1 мера с именем Сумма.

Выражение расчета выглядит следующим образом:

(
   ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept1],[Measures].[Amount])+
   ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept2],[Measures].[Amount])
)
/
(
   ([Accounts].[All Levels].[Level 1].&[Labor],[Measures].[Amount])+
   ([Accounts].[All Levels].[Level 1].&[Expenses],[Measures].[Amount])
) 

В основном он пытается получить валовую прибыль только для отделов 1 и 2, а затем разделить ее наобщее количество труда и расходов (все отделы).

Это будет сделано для года, месяца и выбранного магазина (или всего).

Теперь, что я хочу сделатьэто посмотреть, что составляет окончательные результаты, которые я вижу по различным измерениям в кубе, чтобы я мог проверить правильность расчета.

Например, скажем, итоговая сумма составляет 40%, если я выберу Год: 2018, Месяц: Январь: Магазин: L001.

Что бы я хотел увидеть, какие суммы были для валовой прибыли (для Dept1 и Dept2) по сравнению с суммами для труда и расходов.Имеются в виду фактические базовые суммы, но подробно

Я попытался просто поместить в выражение вычисления:

select
    (
       ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept1],[Measures].[Amount])+
       ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept2],[Measures].[Amount])
    )
    /
    (
       ([Accounts].[All Levels].[Level 1].&[Labor],[Measures].[Amount])+
       ([Accounts].[All Levels].[Level 1].&[Expenses],[Measures].[Amount])
    ) 
FROM 
    My Cube
;

И получил ошибку: "Parser: не удалось разрешить диалект оператораиз-за двусмысленности. "

1 Ответ

0 голосов
/ 08 июня 2018

Попробуйте это:

WITH MEMBER [Measures].[Gross Profit] as
    (
       ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept1],[Measures].[Amount])+
       ([Accounts].[All Levels].[Level 1].&[Gross Profit].&[Dept2],[Measures].[Amount])
    )
    /
    (
       ([Accounts].[All Levels].[Level 1].&[Labor],[Measures].[Amount])+
       ([Accounts].[All Levels].[Level 1].&[Expenses],[Measures].[Amount])
    )
SELECT [Measures].[Gross Profit] on COLUMNS
FROM 
    My Cube
;
...