MDX百分比行未正确计算

时间:2016-12-02 13:14:40

标签: sql-server ssas mdx

我正在尝试根据查询中先前派生的总列计算表中的百分比行。

我有两列,然后我为该列创建了一个总计。在下一行中,我想要显示总数的百分比。输出应该是这样的:

               Life      Non-Life (P&C)      SumTotal
Premiums    66,104.44        916,792.51     982,896.95 
Percentage      6.73%            93.27%              1

但是第二行显示为零。

如何构造查询以正确计算? 这是mdx代码:

with member [LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics].[SumTotal]  as  SUM([LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics] , [Measures].[Value]  ) 

member [LocationSpecificData].[Data Type].[All].[Percentage] as [LocationSpecificData].[Data Type].[All].[Gross Written Premiums Total - Calculated], [Measures].[Value] ) / ([LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics].[SumTotal], [Measures].[Value]  ) 

Select  { [LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics].&[Life], [LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics].&[Non-Life (P&C)],   [LocationSpecificClass].[Hierarchy].[All].&[Insurance Market Statistics].[SumTotal]  } On Columns , 
{   [LocationSpecificData].[Data Type].[All].[Gross Written Premiums Total - Calculated] ,    [LocationSpecificData].[Data Type].[All].[Percentage] } On Rows
FROM [CubeDatabase]  

1 个答案:

答案 0 :(得分:0)

请尝试以下示例,该示例在我的环境中运行良好。我已将日期维度[Datum]与年份属性[Jahr]一起使用,通过添加[Line2]添加第二行。第一个显示的行是2016年。根据您的需要设置计算的度量[M1]和[M2],并相应地交换年份维度。

WITH
MEMBER [Measures].[M1] AS [Measures].[name of your measure for col 1]
MEMBER [Measures].[M2] AS [Measures].[name of your measure for col 2]
MEMBER [Measures].[Total] AS [Measures].[M1] + [Measures].[M2]

MEMBER [Datum].[Jahr].[Line2] AS
    Divide(
        ([Datum].[Jahr].&[2016], [Measures].CurrentMember),
        ([Datum].[Jahr].&[2016], [Measures].[Total])
    )

SELECT {
    [Measures].[M1],
    [Measures].[M2],
    [Measures].[Total]
} ON 0,

{
    [Datum].[Jahr].&[2016],
    [Datum].[Jahr].[Line2]
} ON 1

FROM [name of cube]

我的环境中的结果如下所示: enter image description here