0

我正在尝试计算具有某些条件的新度量,我首先创建了一个第一级成员,然后尝试在下一个成员定义中使用它。

下一个成员“CashDisp”在 If 条件下评估为零,我是 SSAS 新手,请帮我解决这个问题

/*
The CALCULATE command controls the aggregation of leaf cells in the cube.
If the CALCULATE command is deleted or modified, the data within the cube is affected.
You should edit this command only if you manually specify how the cube is aggregated.
*/
CALCULATE;    
CREATE MEMBER CURRENTCUBE.[Measures].CashDispensed
 AS [Measures].[Orig Trans Amount]/100, 
VISIBLE = 1;     
CREATE MEMBER CURRENTCUBE.[Measures].CashDisp
 AS IIF([Dim Trans Type Code].[Trans Type Code] ='10'
and [Dim Termn Ln].[Termn Ln]= 'PRO1'
and [Dim Reversal Reason].[Reversal Reason] ='00'
and [Dim Trans Response Code].[Trans Response Code] ='051',[Measures].CashDispensed,0), 
VISIBLE = 1  ; 
4

1 回答 1

1

问题是您如何比较维度值。

当你说

[Dim Trans Type Code].[Trans Type Code] ='10'

那真的是在比较

[Dim Trans Type Code].[Trans Type Code].[All] to '10'。

你需要这样写你的比较:

IIF([Dim Trans Type Code].[Trans Type Code].currentmember IS [Dim Trans Type Code].[Trans Type Code].&[10],[Measures].CashDispensed,0)

该示例是精简的,但您可以看到每个维度的变化。这还要求每个维度层次结构都位于查询中的某个位置。如果不是,那么它就是它的 All 版本,并且您的 IIF 不会评估您创建的成员。

于 2013-10-15T15:16:47.627 回答