ユーザー定義メンバ プロパティ (MDX)
属性リレーションシップとして、ディメンション内の指定されたレベルにユーザー定義メンバ プロパティを追加できます。ユーザー定義メンバ プロパティは、階層の (All) レベル、または階層そのものには追加できません。
ユーザー定義メンバ プロパティの作成
以下のように、ユーザー インターフェイスを使用して、またはプログラムによって、サーバー ベースのディメンションまたはキューブにユーザー定義メンバ プロパティを追加できます。
ユーザー インターフェイスを使用してユーザー定義メンバ プロパティを追加するには、Business Intelligence Development Studio でディメンション デザイナを使用します。詳細については、「属性リレーションシップの定義」を参照してください。
プログラムによってユーザー定義メンバ プロパティを追加するには、アプリケーションで Analysis Manager Objects (AMO) を使用するか、XML for Analysis (XMLA) と Analysis Services Scripting Language (ASSL) を組み合わせて使用できます。詳細については、「属性リレーションシップ」を参照してください。
ユーザー定義メンバ プロパティの取得
ユーザー定義メンバ プロパティを取得するには、PROPERTIES キーワードまたは Properties 関数を使用できます。
PROPERTIES キーワードを使用したユーザー定義メンバ プロパティの取得
次に示すように、ユーザー定義メンバ プロパティを取得する構文は、固有レベル メンバ プロパティを取得する構文と同様です。
DIMENSION PROPERTIES [Dimension.]Level.<Custom_Member_Property>
PROPERTIES キーワードは、軸を指定するセット式の後に指定します。たとえば、次の MDX クエリの PROPERTIES キーワードは List Price および Dealer Price ユーザー定義メンバ プロパティを取得するもので、1 月に販売された製品を示すセット式の後に指定されています。
SELECT
CROSSJOIN([Ship Date].[Calendar].[Calendar Year].Members,
[Measures].[Sales Amount]) ON COLUMNS,
NON EMPTY Product.Product.MEMBERS
DIMENSION PROPERTIES
Product.Product.[List Price],
Product.Product.[Dealer Price] ON ROWS
FROM [Adventure Works]
WHERE ([Date].[Month of Year].[January])
Properties 関数を使用したユーザー定義メンバ プロパティの取得
別の方法として、Properties 関数を使ってカスタム メンバ プロパティにアクセスすることもできます。たとえば、次の MDX クエリでは、WITH キーワードを使用して、List Price メンバ プロパティで構成される計算されるメンバを作成します。
WITH
MEMBER [Measures].[Product List Price] AS
[Product].[Product].CurrentMember.Properties("List Price")
SELECT
[Measures].[Product List Price] on COLUMNS,
[Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
計算されるメンバの作成の詳細については、「MDX での計算されるメンバの作成 (MDX)」を参照してください。