メンバ、組、およびセットの操作 (MDX)
MDX には、1 つ以上のメンバ、組、またはセットを返す操作や、メンバ、組、またはセットに対する操作を行うための関数が各種用意されています。
メンバ関数
MDX には、ディメンション、レベル、セット、組などの他の MDX エンティティからメンバを取得するための関数がいくつかあります。たとえば、FirstChild 関数はメンバに対して操作を実行してメンバを返す関数です。
時間ディメンションの最初の子メンバを取得するには、次の例のように、明示的にメンバを指定できます。
SELECT [Date].[Calendar Year].[CY 2001] on 0
FROM [Adventure Works]
または、次の例のように、FirstChild 関数を使用して同じメンバを返すこともできます。
SELECT [Date].[Calendar Year].FirstChild on 0
FROM [Adventure Works]
MDX メンバ関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。
組関数
MDX には、組を返す関数がいくつかあります。これらの関数は、組を使用できる任意の箇所で使用できます。たとえば、Item (組) (MDX) 関数はセットから最初の組を抽出するために使用できます。これは、セットに含まれているのが単一の組であるとわかっており、組を 1 つ必要とする関数にその組を渡す場合に非常に便利です。
次の例では、列軸上の組のセット内から最初の組を返します。
SELECT {
([Measures].[Reseller Sales Amount]
,[Date].[Calendar Year].[CY 2003]
)
, ([Measures].[Reseller Sales Amount]
,[Date].[Calendar Year].[CY 2004]
)
}.Item(0)
ON COLUMNS
FROM [Adventure Works]
組関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。
セット関数
MDX には、セットを返す関数がいくつかあります。セットを取得する方法は、明示的に組を入力して中かっこで囲むだけではありません。セットを返すメンバ関数の詳細については、「MDX の主な概念 (MDX)」を参照してください。他にも多くのセット関数があります。
コロン演算子を使用すれば、メンバの順序を指定してセットを作成できます。たとえば、次の例のセットには、2002 年度の第 1 四半期から第 4 四半期までの組が含まれます。
SELECT
{[Calendar Quarter].[Q1 CY 2002]:[Calendar Quarter].[Q4 CY 2002]}
ON 0
FROM [Adventure Works]
コロン演算子を使用してセットを作成しない場合は、次の例のような組を指定することで、同じメンバ セットを作成できます。
SELECT {
[Calendar Quarter].[Q1 CY 2002],
[Calendar Quarter].[Q2 CY 2002],
[Calendar Quarter].[Q3 CY 2002],
[Calendar Quarter].[Q4 CY 2002]
} ON 0
FROM [Adventure Works]
コロン演算子は内包的な関数です。コロン演算子の両側のメンバはどちらも結果セットに含まれます。
セット関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。
論理関数
論理関数は、MDX 式に対して操作を実行し、その式の組、メンバ、またはセットに関する情報を返します。たとえば、IsEmpty (MDX) 関数は、式から空のセル値が返されるかどうかを評価します。論理関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。
数値関数
数値関数は、MDX 式に対して操作を実行してスカラ値を返します。たとえば、Aggregate (MDX) 関数は、指定されたセットの組に対し、メジャーを集計することで計算されるスカラ値を返します。数値関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。
文字列関数
文字列関数は、MDX 式に対して操作を実行して文字列を返します。たとえば、UniqueName (MDX) 関数は、ディメンション、階層、レベル、メンバの一意の名前を格納した文字列値を返します。文字列関数の詳細については、「MDX 関数リファレンス (MDX)」を参照してください。