4)Descendants()
構文:Descendants(メンバー,レベルまたは相対レベル数値,オプション)(戻り:メンバー)
第1パラメータで指定されたメンバーから下位階層レベルを第2パラメータで指定し、そのレベルから第3パラメータで指定したオプションによる上下のレベルのメンバーのセットを戻します。
Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],
[URIAGE DATE].[YYYY-MM-DD].[MONTH],SELF)
または
Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],1,SELF)Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],
[URIAGE DATE].[YYYY-MM-DD].[MONTH],AFTER)
または
Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],2,AFTER)Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],
[URIAGE DATE].[YYYY-MM-DD].[MONTH],BEFORE)
または
Descendants([URIAGE DATE].[YYYY-MM-DD].[YEAR].[2008年],0,BEFORE)
第1パラメータで指定したメンバーから下位階層の全メンバーを対象とし、第2パラメータで指定したレベル(数値指定の場合は第1パラメータのメンバーからの相対レベル)を基準に、次のように第3パラメータを指定します。
- SELF:指定したレベルの全メンバー
- AFTER:指定したレベルより下位の全階層の全メンバー
- BEFORE:指定したレベルより上位の全階層の全メンバー
- BEFORE_AND_AFTER:指定したレベルの上位と下位の全階層の全メンバー
- SELF_AND_AFTER:指定したレベルと、それより下位の全階層の全メンバー
- SELF_AND_BEFORE:指定したレベルと、それより上位の全階層の全メンバー
- SELF_BEFORE_AFTER:指定したレベルと、上下位の全階層の全メンバー
- LEAVES:指定したレベルの全メンバーと、それより上位階層だが、下位階層レベルのメンバーを持たないメンバー(リーフ子孫メンバー)
5)Ancestor()
構文:Ancestor(メンバー,レベルまたは相対レベル数値)(戻り:メンバー)
第1パラメータで指定されたメンバーから第2パラメータで指定した上位階層レベルのメンバーを戻します。
Ancestor([URIAGE DATE].[YYYY-MM-DD].[2008年].[11月],
[URIAGE DATE].[YYYY-MM-DD].[YEAR])Ancestor([URIAGE DATE].[YYYY-MM-DD].[2008年].[11月].[11月1日],
[URIAGE DATE].[YYYY-MM-DD].[YEAR])
6)StrToMember()、StrToValue()、StrToSet()、StrToTouple()
構文:StrToMember(文字列)(戻り:メンバー)
StrToValue(文字列)(戻り:値)
StrToSet(文字列)(戻り:セット)
StrToTouple(文字列)(戻り:タプル)
パラメータで指定された文字列を、MDX文のそれぞれの要素に変換します。MDXではデータの抽出条件となる指定がSELECT句やWHERE句のメンバー指定などで直接記述されてしまうため、MDX文をプロシージャ化して抽出条件をプロシージャのパラメータとして指定する、ということができません。そのために用意されているのがこれらの関数です。
関数にパラメータに文字列(’で括る)を指定し、その結果をメンバーなどMDXの各要素に変換します。ADOMD.Netを使用したクライアントアプリケーションの開発や、当社製品「CubeWalker」を使用したアプリケーション構築などでよく使用します。
SELECT { [Measures].[URIKINGAKU] } ON COLUMNS,
{ StrToMember(‘[URIAGE DATE].[YYYY-MM-DD].[‘
+ @NEN +’]’).Children
} ON ROWS
FROM [Sales]
このように、文字列は「+」で結合するなどの編集が可能です。
また、文字列編集時にはVBA関数も使用できます。これらの組み合わせで文字列編集することにより、MDX文をあらかじめ静的に作成し、パラメータ指定にて動作されることが可能になります。
まとめ
今回は前回に引き続き、よく使うMDX関数について解説しました。次回はMDXを使用したクライアントアプリケーションの作り方について解説します。
参考資料
- 『SQL Server Books Online - Microsoft』
- 『MDX Solutions』George Spofford・Sivakumar Harinath・Christopher Webb・Dylan Hai Huang・Francesco Civardi著、Wiley社、2006年3月
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 難解クエリー言語「MDX」に挑戦連載記事一覧
-
- 多次元データベースクエリー言語「MDX」入門 ~クライアントアプリケーションの作成方法(7...
- 多次元データベースクエリー言語「MDX」入門 ~よく使う関数・後編(6)
- 多次元データベースクエリー言語「MDX」入門 ~よく使う関数・前編(5)
- この記事の著者
-
大家 正巳(オオヤ マサミ)
株式会社ヴィバーク代表取締役。 システムアナリスト。 この度、当社では SQL Server Analysis Services に接続し、MDXの発行が可能な BIシステム構築ツール「CubeWalker」を開発しました。2009年10月より発売致します。 高速かつ安価なBIシステム作りに、是非お...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


