スライサー軸は、多次元式 (MDX) SELECT ステートメントによって返されるデータをフィルター処理し、指定されたメンバーと交差するデータのみが返されるように、返されるデータを制限します。 クエリでは、非表示の余分な軸と考えることができます。 スライサー軸は、MDX の SELECT ステートメントの WHERE 句で定義されます。
スライサー軸の構文
スライサー軸を明示的に指定するには、次の構文で説明するように、MDX で <SELECT slicer axis clause> を使用します。
<SELECT slicer axis clause> ::= WHERE Set_Expression
示されているスライサー軸の構文では、 Set_Expression は、句を評価するためにセットとして扱われるタプル式または set 式を受け取ることができます。 セット式が指定されている場合、MDX はセットの評価を試み、セットに沿ったすべてのタプルの結果セルを集計します。 言い換えると、MDX はセットで Aggregate 関数を使用し、関連する集計関数によって各メジャーを集計しようとします。 また、セット式を属性階層メンバーのクロス結合として表現できない場合、MDX は、スライサーの set 式の外側にあるセルを評価目的で null として扱います。
重要
SQL の WHERE 句とは異なり、MDX SELECT ステートメントの WHERE 句は、クエリの行軸で返される内容を直接フィルター処理することはありません。 クエリの行軸または列軸に表示される内容をフィルター処理するには、FILTER、NONEMPTY、TOPCOUNT などのさまざまな MDX 関数を使用できます。
暗黙的なスライサー軸
キューブ内の階層のメンバーがクエリ軸に明示的に含まれていない場合、その階層の既定のメンバーはスライサー軸に暗黙的に含まれます。 既定のメンバーの詳細については、「 既定のメンバーを定義する」を参照してください。
例示
次のクエリには WHERE 句が含まれておらず、すべての暦年における Internet Sales Amount メジャーの値を返します。
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
次のように WHERE 句を追加します。
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[United States])
は、クエリの行または列に返される内容を変更しません。各セルに対して返される値が変更されます。 この例では、クエリがスライスされ、すべての暦年の Internet Sales Amount の値が返されますが、米国に住んでいる顧客に対してのみ返されます。異なる階層の複数のメンバーを WHERE 句に追加できます。 次のクエリは、米国に住み、カテゴリ バイクで製品を購入した顧客のすべての暦年のインターネット販売額の値を示しています。
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[United States], [Product].[Category].&[1])
同じ階層の複数のメンバーを使用する場合は、WHERE 句にセットを含める必要があります。 たとえば、次のクエリは、カテゴリ バイクで製品を購入し、米国または英国のいずれかに住んでいる顧客のすべての暦年のインターネット販売額の値を示しています。
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
[Date].[Calendar Year].MEMBERS ON ROWS
FROM [Adventure Works]
WHERE(
{[Customer].[Customer Geography].[Country].&[United States]
, [Customer].[Customer Geography].[Country].&[United Kingdom]}
, [Product].[Category].&[1])
前述のように、WHERE 句でセットを使用すると、セット内のすべてのメンバーの値が暗黙的に集計されます。 この場合、クエリでは、各セルの米国と英国の集計値が表示されます。