固有メンバ プロパティ (MDX)
1999 年 3 月 (2.6) OLE DB 仕様の OLAP セクションに準拠するプロバイダとして、Microsoft SQL Server Analysis Services はこのトピックに記述されている固有メンバ プロパティをサポートします。
注 |
---|
SQL Server Analysis Services 以外のプロバイダは、この他にも追加の固有メンバ プロパティをサポートする場合があります。他のプロバイダによってサポートされる固有メンバ プロパティについての詳細は、各プロバイダに付属の資料を参照してください。 |
メンバ プロパティの種類
SQL Server Analysis Services がサポートする固有メンバ プロパティには、次の 2 種類があります。
状況依存メンバ プロパティ
この種類のメンバ プロパティは、特定のディメンションまたはレベルのコンテキストで使用する必要があり、特定のディメンションまたはレベルの各メンバに関する値を提供します。非状況依存メンバ プロパティ
この種類のメンバ プロパティは、特定のディメンションまたはレベルのコンテキストで使用できず、軸上のすべてのメンバに関する値を提供します。
固有メンバ プロパティが状況依存/非状況依存のどちらの場合にも、次のような使用上の規則があります。
軸上に射影されているディメンション メンバに関連する固有メンバ プロパティだけを指定できます。
状況依存メンバ プロパティに対する要求を非状況依存固有メンバ プロパティと同じクエリの中に混合できます。
プロパティを照会するには、キーワード PROPERTIES を使用します。
次のセクションでは、SQL Server Analysis Services で使用可能なさまざまな状況依存/非状況依存固有メンバ プロパティについて説明し、それぞれの種類のプロパティに対して PROPERTIES キーワードを使用する方法を示します。
状況依存メンバ プロパティ
すべてのディメンション メンバとレベル メンバでは、状況に依存する固有メンバ プロパティがいくつかサポートされます。次の表は、それらの状況依存プロパティを示しています。
プロパティ |
説明 |
---|---|
ID |
内部的に管理されるメンバ ID。 |
Key |
メンバに関する MEMBERS スキーマ行セットの MEMBER_KEY 列に格納される値。 |
Name |
メンバの名前。 |
状況依存プロパティの PROPERTIES の構文
この種類のメンバ プロパティは、特定のディメンションまたはレベルのコンテキストで使用し、特定のディメンションまたはレベルの各メンバに関する値を提供します。
ディメンション メンバ プロパティの場合、プロパティ名の前に、そのプロパティが適用されるディメンションの名前を指定します。次の例は、適切な構文を示しています。
DIMENSION PROPERTIES Dimension.Property_name
レベル メンバ プロパティの場合、プロパティ名の前にレベル名だけを指定するか、プロパティ名の前にディメンション名とレベル名を両方とも指定することができます。次の例は、適切な構文を示しています。
DIMENSION PROPERTIES [Dimension.]Level.Property_name
たとえば、[Sales] ディメンション内で参照される各メンバのすべての名前を取得する必要があるとします。それらの名前を返すには、多次元 (MDX) クエリで次のステートメントを使用します。
DIMENSION PROPERTIES [Sales].Name
非状況依存メンバ プロパティ
すべてのメンバでは、コンテキストに関係なく同じである固有メンバ プロパティがいくつかサポートされます。これらのプロパティが提供する追加情報をアプリケーションで使用すれば、ユーザー エクスペリエンスを向上させることができます。
次の表は、SQL Server Analysis Services でサポートされる非状況依存の固有プロパティを示しています。
注 |
---|
MEMBERS スキーマ行セット内の列は、以下の表に示されている固有メンバ プロパティをサポートします。MEMBERS スキーマ行セットの詳細については、「MDSCHEMA_MEMBERS 行セット」を参照してください。 |
プロパティ |
説明 |
---|---|
ACTION_TYPE |
メンバに対するアクションの種類を示すビットマスク。このプロパティの値は、次のいずれか 1 つです。
|
CAPTION |
MEMBER_CAPTION と同じ。 |
CHILDREN_CARDINALITY |
メンバが持つ子の数。子の数は推定値の場合があります。したがって、この数値を正確な数として使用しないでください。プロバイダは、正確な数に最も近い推定値を返します。 |
CUBE_NAME |
このメンバが所属するキューブの名前。 |
CUSTOM_ROLLUP |
カスタム メンバ式。 |
CUSTOM_ROLLUP_PROPERTIES |
カスタム メンバ プロパティ。 |
DESCRIPTION |
メンバに関する、人間が読める形式の説明。 |
DIMENSION_UNIQUE_NAME |
このメンバが所属するディメンションの一意な名前。修飾によって一意な名前を生成するプロバイダの場合、この名前の各コンポーネントは区切り記号付きです。 |
HIERARCHY_UNIQUE_NAME |
階層の一意な名前。メンバが複数の階層に所属している場合は、そのメンバが所属する階層ごとに対応する行があります。修飾によって一意な名前を生成するプロバイダの場合、この名前の各コンポーネントは区切り記号付きです。 |
IS_DATAMEMBER |
メンバがデータ メンバかどうかを示すブール値。 |
KEYx |
メンバのキー (x はキーの序数で、0 から始まります)。KEY0 は複合キーおよび非複合キーで使用できますが、KEY1、KEY2 などは複合キーでしか使用できません。Key0、Key1、Key2 などは、全体として複合キーを形成します。 |
LCIDx |
ロケール ID の 16 進値で表現されたメンバ キャプションを変換したもの。x はロケール ID の 10 進値です (たとえば、カナダ英語の場合は LCID1009)。これは、データ ソースにバインドされたキャプション列が変換にある場合のみ使用できます。 |
LEVEL_NUMBER |
階層のルートからメンバまでの距離。ルートのレベルは 0 です。 |
LEVEL_UNIQUE_NAME |
メンバが所属するレベルの一意な名前。修飾によって一意な名前を生成するプロバイダの場合、この名前の各コンポーネントは区切り記号付きです。 |
MEMBER_CAPTION |
メンバに関連付けられたラベルまたはキャプション。キャプションの主な用途は、表示用です。キャプションが存在しない場合、クエリの結果として MEMBER_NAME が返されます。 |
MEMBER_KEY |
元のデータ型でのメンバ キーの値。MEMBER_KEY は、旧バージョンとの互換性のために用意されています。MEMBER_KEY プロパティの値は、非複合キーについては KEY0 と等しく、複合キーについては NULL です。 |
MEMBER_NAME |
メンバの名前。 |
MEMBER_TYPE |
メンバの種類。このプロパティの値は、次のいずれか 1 つです。
MDMEMBER_TYPE_FORMULA は MDMEMBER_TYPE_MEASURE より優先順位が上です。したがって、数式メンバ (計算されるメンバ) がメジャー ディメンションに存在する場合、計算されるメンバの MEMBER_TYPE プロパティは MDMEMBER_TYPE_FORMULA です。 |
MEMBER_UNIQUE_NAME |
メンバの一意な名前。修飾によって一意な名前を生成するプロバイダの場合、この名前の各コンポーネントは区切り記号付きです。 |
MEMBER_VALUE |
元の型でのメンバの値。 |
PARENT_COUNT |
このメンバが持つ親の数。 |
PARENT_LEVEL |
階層のルート レベルからメンバの親までの距離。ルートのレベルは 0 です。 |
PARENT_UNIQUE_NAME |
メンバの親の一意な名前。ルート レベルのメンバに対しては NULL が返されます。修飾によって一意な名前を生成するプロバイダの場合、この名前の各コンポーネントは区切り記号付きです。 |
SKIPPED_LEVELS |
メンバに関するスキップされたレベルの数。 |
UNARY_OPERATOR |
メンバの単項演算子。 |
非状況依存プロパティの PROPERTIES の構文
PROPERTIES キーワードを使用して固有の非状況依存メンバ プロパティを指定するには、次の構文を使用します。
DIMENSION PROPERTIES Property
この構文では、プロパティをディメンションまたはレベルで修飾できないことに注意してください。プロパティを修飾できない理由は、非状況依存の固有メンバ プロパティが軸上のすべてのメンバに適用されるためです。
たとえば、DESCRIPTION 固有メンバ プロパティを指定する MDX ステートメントは次のような構文になります。
DIMENSION PROPERTIES DESCRIPTION
このステートメントは、軸ディメンション内の各メンバに関する説明を返します。たとえば Dimension.DESCRIPTION または Level.DESCRIPTION のように、ディメンションまたはレベルによってプロパティを修飾した場合、ステートメントは無効になります。
例
次の例では、Aggregate 関数を使用して評価された、ユーザー選択の State-Province メンバ値に基づいて、1 つ前の期よりも売上が減少した再販業者の数を返します。Product ディメンションに含まれる製品カテゴリに関して減少した売上の値を返すために、Hierarchize (MDX) 関数および DrilldownLevel (MDX) 関数を使用しています。列軸で返された親メンバの一意名を返すために、Properties (MDX) 関数が使用されています。
WITH MEMBER Measures.[Declining Reseller Sales] AS
Count
(Filter
(Existing
(Reseller.Reseller.Reseller)
, [Measures].[Reseller Sales Amount] <
(
[Measures].[Reseller Sales Amount]
,[Date].Calendar.PrevMember
)
)
)
MEMBER [Geography].[State-Province].x AS
Aggregate
(
{[Geography].[State-Province].&[WA]&[US]
, [Geography].[State-Province].&[OR]&[US]
}
)
SELECT NON EMPTY HIERARCHIZE
(AddCalculatedMembers
(
{DrillDownLevel
({[Product].[All Products]})
}
)
) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
FROM [Adventure Works]
WHERE
(
[Geography].[State-Province].x
, [Date].[Calendar].[Calendar Quarter].&[2003]&[4]
,[Measures].[Declining Reseller Sales]
)
次の例では、Adventure Works キューブの Product ディメンションに含まれる製品カテゴリ メンバのキャプションを、指定されたロケールの言語で翻訳して返します。
WITH
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]