MDX百分比计算

时间:2015-10-15 09:57:34

标签: sql-server ssas mdx

我正在尝试计算百分比并将其添加到我的立方体度量中。

Basicaly我正在尝试计算销售额的百分比 周 01至02等待时间 03至04等待时间 | | 99至100等待时间

计算百分比的公式是 SUM(所有金额的总和,最多17到18个等待时间) / SUM(所有等待时间的金额总和)

有人可以帮助我使用mdx来获得SUM(所有金额的总和可达17至18周)。

我试过以下。但问题是,numarator [等待时间]。[等待]。& [17到18周]只给我那个星期的金额。我需要的金额最多为17到18 [等待时间]。

CREATE
MEMBER CurrentCube.[Measures].[Percent of Performance] AS
CASE
WHEN
IsEmpty([Measures].[Patients])
THEN NULL
ELSE
(
[Waiting Times].[Wait].&[17 To 18 Weeks]
,[Measures].[Patients]
)
/
(
[Waiting Times].[Wait].[All]
,[Measures].[Amount]
)

1 个答案:

答案 0 :(得分:0)

如果您希望所有成员都取决于某个成员,那么您可以使用范围运算符:与null null:[x]

所以申请你的剧本:

CREATE 
  MEMBER CurrentCube.[Measures].[Percent of Performance] AS 
    IIF
    (
      IsEmpty([Measures].[Patients])
     ,NULL
     ,Divide
      (
        (
          NULL : [Waiting Times].[Wait].[17 To 18 Weeks]
         ,[Measures].[Patients]
        )
       ,(
          [Waiting Times].[Wait].[All]
         ,[Measures].[Amount]
        )
      )
    ) ;

如果你尝试以下操作,你仍然会得到NULL,如果是这样意味着你的条件IsEmpty([Measures].[Patients])是真的吗?

CREATE 
  MEMBER CurrentCube.[Measures].[Percent of Performance] AS 
    IIF
    (
      IsEmpty([Measures].[Patients])
     ,NULL
     ,1
    ) ;