次の方法で共有


レッスン 4-2 - Parent-Child 階層での親属性プロパティの定義

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

親子階層とは、2 つのテーブル列に基づいたディメンション内の階層です。 この 2 つのテーブル列により、ディメンションのメンバー間の階層リレーションシップが定義されます。 一方の列は メンバー キー列と呼ばれ、各ディメンション メンバーを識別します。 もう一方の列は 親列と呼ばれ、各ディメンション メンバーの親を識別します。 親属性の NamingTemplate プロパティは、親子階層の各レベルの名前を指定します。 MembersWithData プロパティは、親メンバーのデータを表示するかどうかを指定します。

詳細については、「 親子ディメンション, 親子階層の属性」を参照してください。

注意

ディメンション ウィザードを使用してディメンションを作成すると、親子リレーションシップを持つテーブルがウィザードによって認識され、親子階層が自動的に定義されます。

このトピックの実習では、名前付けテンプレートを使用して、 Employee ディメンションの親子階層の各レベルに名前を付けます。 次に、すべての親データが非表示になるように親属性を構成します。これにより、リーフレベルのメンバーの売上高のみが表示されるようになります。

Employee ディメンションの表示

  1. ソリューション エクスプローラーで、 [ディメンション] フォルダーの Employee.dim をダブルクリックし、Employee ディメンションのディメンション デザイナーを開きます。

  2. [ブラウザー] タブをクリックし、 [階層] ボックスの一覧で [Employees] が選択されていることを確認します。次に、 [All Employees] メンバーを展開します。

    この親子階層では、 Ken J. Sánchez が最上位の管理者です。

  3. [Ken J. Sánchez] メンバーをクリックします。

    このメンバーのレベル名は Level 02です。 (レベル名は、 [現在のレベル:] の後、つまり、 [All Employees] メンバーのすぐ上に表示されます)。次の実習では、さらにわかりやすい名前を各レベルに定義します。

  4. [Ken J. Sánchez] を展開し、この管理者の監督下にある従業員の名前を表示します。次に、 [Brian S. Welcker] をクリックし、このレベルの名前を表示します。

    このメンバーのレベル名は Level 03です。

  5. ソリューション エクスプローラーで、[キューブ] フォルダーの [Analysis Services Tutorial.cube] をダブルクリックして、SQL Server Analysis Services Tutorial キューブのキューブ Designerを開きます。

  6. [ブラウザー] タブをクリックします。

  7. Excel アイコンをクリックし、接続の有効化を確認するメッセージが表示されたら [有効化] をクリックします。

  8. ピボットテーブルのフィールド リストで Reseller Salesを展開します。 Reseller Sales-Sales Amount を値領域にドラッグします。

  9. ピボットテーブルのフィールド リストで Employeeを展開し、 Employees 階層を 領域にドラッグします。

    Employees 階層のすべてのメンバーがピボットテーブル レポートの列 A に追加されます。

    次の図は、展開された Employees 階層を示しています。

  10. 従業員階層を示すピボットテーブル 従業員階層

    Level 03 の各管理者の売上は Level 04 にも表示されます。 各管理者は、他の管理者の部下でもあるからです。 次の実習では、これらの売上高を非表示にします。

Employee ディメンションの親属性プロパティの変更

  1. Employee ディメンションのディメンション デザイナーに切り替えます。

  2. [ディメンション構造] タブをクリックし、 [属性] ペインで [Employees] 属性階層をクリックします。

    この属性だけ、他とは異なるアイコンが表示されています。 このアイコンは、Employees 属性が親子階層の親キーであることを示しています。 また、[プロパティ] ウィンドウを見ると、この属性の Usage プロパティが Parentとして定義されていることがわかります。 このプロパティは、ディメンションを設計した際にディメンション ウィザードによって設定されたものです。 親子リレーションシップは、ウィザードによって自動的に検出されています。

  3. [プロパティ] ウィンドウで、NamingTemplateプロパティ セルの参照ボタン ( [...] ) をクリックします。

    [レベル名前付けテンプレート] ダイアログ ボックスでレベル名前付けテンプレートを定義します。このテンプレートは、キューブを表示するときに表示される親子階層のレベル名を決定します。

  4. 2 行目の*行で、[名前] 列に「Employee Level *」と入力し、3 行目をクリックします。

    [結果] の下を確認すると、各レベルには、"Employee Level" の後ろに連番を追加した名前が付いています。

    次の図は、 [レベル名前付けテンプレート] ダイアログ ボックスで定義を変更するようすを示しています。

    [レベルの名前付けテンプレート] ダイアログ ボックスの [

  5. [OK] をクリックします。

  6. Employees 属性の[プロパティ] ウィンドウの MembersWithData プロパティ セルで、 [NonLeafDataHidden] を選択して Employees 属性の値を変更します。

    この操作により、親子階層内の非リーフレベル メンバーに関連付けられているデータが非表示になります。

属性を変更した Employee ディメンションの表示

  1. SQL Server Data Toolsの [ビルド] メニューで、[Analysis Services チュートリアルの配置] をクリックします。

  2. デプロイが正常に完了したら、SQL Server Analysis Services Tutorial キューブのキューブ Designerに切り替え、[ブラウザー] タブのツール バーの [再接続] をクリックします。

  3. Excel アイコンをクリックし、 [有効化]をクリックします。

  4. Reseller Sales-Sales Amount を値領域にドラッグします。

  5. Employees 階層を行ラベル領域にドラッグします。

    次の図は、Employees 階層を変更したようすを示しています。 Stephen Y. Jiang は、本人自身の部下として表示されなくなっています。

    変更された従業員階層

このレッスンの次の作業

属性メンバーの自動的なグループ化

参照

親子ディメンション
親子階層の属性