機械翻訳について

名前付きセットと計算済メンバーの作成および使用

計算済メンバーおよび名前付きセットは、問合せの存続期間中に複数回使用できる問合せの論理エンティティです。 計算済メンバーおよび名前付きセットを使用すると、記述されたコード行および実行時に時間を節約できます。 MDX問合せの先頭にあるオプションのWITHセクションでは、計算済メンバーまたは名前付きセット(あるいはその両方)を定義します。

次の問合せでは、計算済メンバーが使用されます:

WITH
MEMBER [Measures].[Max Qtr2 Sales] AS
  'Max (
    {[Year].[Qtr2]},
    [Measures].[Sales]
  )'
SELECT
{ [Measures].[Max Qtr2 Sales] } on columns,
{ [Product].children } on rows
FROM Sample.Basic

次の問合せでは、名前付きセットが使用されます:

WITH SET [NewSet] 
AS 'CrossJoin([Product].Children, [Market].Children)'
SELECT
   Filter([NewSet], NOT IsEmpty([NewSet].CurrentTuple)) 
ON COLUMNS
FROM Sample.Basic
WHERE
   {[Sales]}

計算済メンバー

計算済メンバーは、問合せの実行中に存在する仮想メンバーです。 計算済メンバーを使用すると、キューブ・アウトラインに物理メンバーを追加せずに複雑な分析を実行できます。 計算済メンバーには、物理メンバーに対して実行された計算結果が格納されます。

計算済メンバー名には、次のガイドラインを使用します:

  • 計算済メンバーをディメンションに関連付けます。たとえば、メンバーMyCalcをMeasuresディメンションに関連付けるには、[Measures].[MyCalc]という名前を付けます。

  • 実際のメンバー名を使用して計算済メンバーに名前を付けないでください。たとえば、SalesはMeasuresディメンションにすでに存在するため、計算済メンバーに[Measures].[Sales]という名前を付けないでください。

複数の計算済メンバーを使用して比率またはカスタム合計を作成する場合は、各計算済メンバーの解決順を設定することをお薦めします。

演習: 計算済メンバーの作成

この演習には、計算に共通の関数であるMax MDX関数が含まれています。 Max関数は、セットのタプルで見つかった値の最大数を返します。 構文は次のとおりです:

Max (set, numeric_value)

計算済メンバーを作成するには:

  1. qry_blank_2ax.txt (演習: 2軸問合せの実行から作成した問合せテンプレート)を開きます。
  2. 行軸セットで、Productの子を指定します。 次に例を示します。
    SELECT
      {}
    ON COLUMNS,
      {[Product].children}
    ON ROWS
    FROM Sample.Basic
  3. 問合せの先頭に、計算済メンバー指定のプレースホルダーを追加します。 次に例を示します。
    WITH MEMBER [].[]
     AS ''
    SELECT
      {}
    ON COLUMNS,
      {[Product].children}
    ON ROWS
    FROM Sample.Basic
  4. 計算済メンバーをMeasuresディメンションに関連付け、Max Qtr2 Salesという名前を付けるには、この情報を計算済メンバー指定に追加します。 次に例を示します。
    WITH MEMBER [Measures].[Max Qtr2 Sales]
     AS ''
    SELECT
      {}
    ON COLUMNS,
      {[Product].children}
    ON ROWS
    FROM Sample.Basic
  5. ASキーワードの後および一重引用符内に、Max Qtr2 Salesという名前の計算済メンバーのロジックを定義します。

    Max関数は、最初の引数としてevaluate (Qtr2)を指定し、2番目の引数としてevaluate (Sales)を指定して使用します。 例:

    WITH MEMBER [Measures].[Max Qtr2 Sales]
      AS '
      Max (
        {[Year].[Qtr2]},
        [Measures].[Sales]
      )'
    SELECT
      {}
    ON COLUMNS,
      {[Product].children}
    ON ROWS
    FROM Sample.Basic
    
  6. 計算済メンバーMax Qtr2 SalesはWITHセクションで定義されます。 問合せで使用するには、問合せのSELECT部分のいずれかの軸に含めます。 列軸で事前定義済の計算済メンバーを選択します。 次に例を示します。
    WITH MEMBER [Measures].[Max Qtr2 Sales]
      AS '
      Max (
        {[Year].[Qtr2]},
        [Measures].[Sales]
      )'
    SELECT
      {[Measures].[Max Qtr2 Sales]}
    ON COLUMNS,
      {[Product].children}
    ON ROWS
    FROM Sample.Basic
    
  7. 問合せをgry_calc_member.txtとして保存します。
  8. 演習: 最初の問合せの実行の説明に従って、問合せをMaxLクライアントに貼り付けて実行します。

問合せの結果を次に示します:

表27-8 結果: 計算済メンバーの作成

スペースのイメージは空のスレッド・セルに使用されます 最大Qtr2販売

100

27187

200

27401

300

25736

400

21355

低カロリー

26787

名前付きセット

名前付きセットは、問合せのWITHセクションで定義します。 これは、問合せのSELECTセクションを作成するときにセットを名前で参照できるため便利です。

たとえば、名前付きセットBest5Prodsは、12月の最上位5つの販売製品のセットを識別します:

WITH
SET [Best5Prods]
  AS
  'Topcount (
    [Product].members,
    5,
    ([Measures].[Sales], [Scenario].[Actual], [Year].[Dec])
  )'
SELECT [Best5Prods] ON AXIS(0),
  {[Year].[Dec]} ON AXIS(1)
FROM Sample.Basic