代码之家  ›  专栏  ›  技术社区  ›  ptownbro

SSAS计算和MDX

  •  0
  • ptownbro  · 技术社区  · 6 年前

    我不知道如何将这个ssas计算表达式转换为mdx查询,以便能够计算计算的各个部分。请帮助!

    计算应用于具有以下维度的多维数据集:年、月、商店、部门和帐户。它还有一个名为amount的度量值。

    计算公式如下:

    (
       ([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的毛利,然后除以人工和费用的总和(所有部门)。

    这将针对所选的年度、月份和门店(或总计)执行。

    现在,我想做的是看看是什么构成了我在立方体中看到的不同维度的最终结果,这样我就可以验证计算。

    例如,如果我选择Year:2018,Month:Jan:Store:L001,则结果金额为40%。

    我想看看毛利润(折旧1和折旧2)和人工和费用的金额是多少。指实际的基础金额,但要详细说明

    我试着在计算表达式中加上:

    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 回复  |  直到 6 年前
        1
  •  2
  •   GregGalloway    6 年前

    试试这个:

    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
    ;