我有两个维度DimFlag和DimPNL以及一个事实表FactAmount。我的目标是:当pnl处于状态(Is Stat=1)时:求和(Actual x FlagId)。对于pnl,我基本上通过字段FlagId将金额相乘,如果FlagId为0,则结果为0。
我尝试了以下的MDX代码,但是它没有起作用,请问有什么想法吗?
FlagId FlagLabel
-----------------
1 NotClosed
0 IsClosed
DimPNL
PNLId PNLName Is Stat
1 a 1
2 test 1
3 test2 0
FactAmount
id PNLId FlagId Actual
1 1 1 100
2 2 1 10
3 3 0 120
我尝试了以下的MDX代码,但是它没有起作用,请问有什么想法吗?
Scope (
[Dim PNL].[PNL].members,[Measures].members
);
this = iif([Dim PNL].[PNL].CurrentMember.Properties("Is Stat") =1
,
aggregate([Dim PNL].[PNL].currentmember,[Measures].currentmember)* iif([Dim Flag].[Flag Label].[Flag Label].currentmember = 0, 0, 1),
aggregate([Dim PNL].[PNL].currentmember,[Measures].currentmember)
);