LoginSignup
0
1

More than 3 years have passed since last update.

【PBCS】ASO(集約ストレージ・オプション)- MDX式の利用その②

Last updated at Posted at 2019-05-20

前回の記事はこちら:
【PBCS】ASO(集約ストレージ・オプション)- MDX式の利用その①

主な変換例

(3)IIF

・BSOの IF文 からの変換に使用できる

 IIF (
条件式
,
trueの場合の戻り値
,
falseの場合の戻り値
)

BSOの場合

IF(@ISMBR("Account001") OR @ISMBR(@IDESCENDANTS("Account002")))
#Missing;
ELSE
@ROUND("Actual"->(@CURRMBR(Account))->"Currency001"/"Actual"->"Account003"->"Currency001",4);
ENDIF

ASOの場合

IIF([Account].CurrentMember IS [Account001] OR 
    [Account].CurrentMember IS [Account002],MISSING,
    IIF(
    Count(
              Intersect(
                          {Descendants([Account002])},{Account.CurrentMember}
                        )
      ) = 1,
MISSING,ROUND(([Actual],[Account].CurrentMember,[Currency001])/([Actual],[Account003],[Currency001]),4)
    )
)

(4)Intersect

・set1とset2の共通部分が戻される
@ISMBRからの変換に使用できる

Intersect ( set1, set2 [,ALL] )

※【op】はオプション(任意)値
set1 :set2との共通部分が計算されるセット
set2 :set1との共通部分が計算されるセット
ALL :ALLキーワードの指定により、set1とset2の一致する重複が保持される【op】

<例①>

Intersect({[New York], [California], [Oregon]},{[California], [Washington], [Oregon]})

・戻り値
{[California], [Oregon]}

<例②:ALLキーワードの使用>

Intersect( { [New York], [California], [Florida], [California] },
           { [Oregon], [Washington], [California], [Florida], [California] }, ALL)

・ 戻り値
{ [California], [Florida], [California] }
→ALLキーワードの使用で、重複メンバーをマージせずに返す

<こんな時に使える!>

// ①「Member01」または「Member02」:#MISSING
// ②「Member02」の子孫:100
// ③ ①②以外:777
// ※②はIntersectの戻り値をカウントしており
//  1の時(=「Member02」の子孫と一致した時)にTrueを返す

IIF([Account].CurrentMember IS [Member01] OR 
    [Account].CurrentMember IS [Member02],MISSING,
    IIF(
        Count(
              Intersect(
                          {Descendants([Member02])},{Account.CurrentMember}
                        )
              ) = 1,
        100,777
        )
)

次回に続く

その他変換方法はこちらを参照

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1