在mdx中,要根据尺寸值在计算中使用一个或另一个度量值吗
我想根据尺寸值计算一些东西:我试过了在mdx中,要根据尺寸值在计算中使用一个或另一个度量值吗,mdx,iccube,Mdx,Iccube,我想根据尺寸值计算一些东西:我试过了 WITH CALCULATED MEMBER [Measures].[Switch] AS IIF ( [Ambu].[Ambu].CurrentMember IS [Ambu].[Ambu].[Non Ambulatoire] ,[Measures].[Nombre de Journées] ,( [Measures].[NbSejours] ,[Ambu].[Ambu]
WITH
CALCULATED MEMBER [Measures].[Switch] AS
IIF
(
[Ambu].[Ambu].CurrentMember IS [Ambu].[Ambu].[Non Ambulatoire]
,[Measures].[Nombre de Journées]
,(
[Measures].[NbSejours]
,[Ambu].[Ambu].[Ambulatoire]
)
)
MEMBER result AS
[Measures].[RecettesT2a] / [Measures].[Switch]
SELECT
{
[Measures].[RecettesT2a]
,[Measures].[Switch]
,result
,[Measures].[NbSejours]
,[Measures].[Nombre de Journées]
} ON 0
,[Ambu].[Ambu] ON 1
--[Classification GHM].[Recours] on 1
FROM [Cube];
事实上,如果Ambu是Ambu,我想用NbSejours除以recitest2a,如果Ambu不是Ambu,我想用[Nombre de Journées]除以recitest2a
当在轴1上使用Ambu时,这个结果是可以的,但是如果我想使用另一个维度作为轴1(例如[Classification GHM].[Recurs]),它不起作用。。。[Measures].[Switch]计算不正确…我们不知道当
Ambu
不符合上下文时您需要什么
因此,根据您的需求,您有两种选择:
WITH
CALCULATED MEMBER [Measures].[Switch] AS
IIF
(
[Ambu].[Ambu].CurrentMember IS [Ambu].[Ambu].[Non Ambulatoire]
OR
isAll([Ambu].[Ambu].CurrentMember)
,[Measures].[Nombre de Journées]
,(
[Measures].[NbSejours]
,[Ambu].[Ambu].[Ambulatoire]
)
)
...
...
或者这个:
WITH
CALCULATED MEMBER [Measures].[Switch] AS
IIF
(
[Ambu].[Ambu].CurrentMember IS [Ambu].[Ambu].[Non Ambulatoire]
OR
NOT isAll([Ambu].[Ambu].CurrentMember)
,[Measures].[Nombre de Journées]
,(
[Measures].[NbSejours]
,[Ambu].[Ambu].[Ambulatoire]
)
)
...
...
此处使用的函数
CURRENTMEMBER
,[Ambu].[Ambu].[Ambu].CURRENTMEMBER
意味着此条件[Ambu].[Ambu].[Ambu].[Ambu].[Ambu].仅当维度[Ambu]
在上下文中时才有意义,即,如果您使用的是另一维度,而不是[Ambu]。[Ambu]
,结果应该是什么?应该是[Measures].[Nombre de journes]
还是([Measures].[NbSejours],[Ambu].[Ambu].[Ambu].[Ambu].[Ambu].[ambutoire])
?好吧,如果我理解得很好,我没有这种方法的解决方案……我需要在事实表中添加一列(和一个新的度量)关于它们的Ambu/非Ambu属性,这已经有了不同的值。-我在下面添加了一个尝试性答案…在icCube中,我们为成员提供了isAll函数()@ic3,这是一个非常方便的函数-我编辑了我的尝试