OLE DB Programmer's Reference |
The construct of elements in MDX are as follows:
<identifier> ::= <regular_identifier> | <delimited_identifier> <regular_identifier> ::= <alpha_char> [{<alpha_char> | <digit> | <underscore>}...] <delimited_identifier> ::= <start_delimiter>{<double_end_delimiter> | <nondelimit_end_symbol>} [{<double_end_delimiter> | <nondelimit_end_symbol> }...] <end_delimiter> <start_delimiter> ::= <open_bracket> <end_delimiter> ::= <close_bracket> <double_end_delimiter> ::= <end_delimiter> <end_delimiter> <nondelimit_end_symbol> ::= !! Any character except <end_delimiter> <cube_name> ::= [ [ [ <data_source>.] <catalog_name>.] [<schema_name>.] <identifier> <data_source> ::= <identifier> <catalog_name> ::= <identifier> <schema_name> ::= <identifier> <dim_hier> ::= [<cube_name>.]<dimension_name> | [[<cube_name>.]< dimension_name>.]<hierarchy_name> <dimension_name> ::= <identifier> | <member>.DIMENSION | <level>.DIMENSION | <hierarchy>.DIMENSION <dimension> ::= <dimension_name> <hierarchy> ::= <hierarchy_name> <hierarchy_name> ::= <identifier> | < member>.HIERARCHY | <level>.HIERARCHY <level> ::= [<dim_hier>.]< identifier> | <dim_hier>.LEVELS(<index>) | <member>.LEVEL
Note The first production is for the case when named levels are supported. The second production is for the case when named levels are not supported.
<member> ::= [<level>.]<identifier> | <dim_hier>.<identifier> | <member>.<identifier> | <member_value_expression>
Note The <member>.<identifier> recognizes the fact that members may sometimes need to be qualified by their parent names. For example, "Portland" is a city in Oregon and also in Maine. So a reference to Portland will be either Oregon.Portland or Maine.Portland.
<property> ::= <mandatory_property> | <user_defined_property> <mandatory_property> ::= CATALOG_NAME | SCHEMA_NAME | CUBE_NAME | DIMENSION_UNIQUE_NAME | HIERARCHY_UNIQUE_NAME | LEVEL_UNIQUE_NAME | LEVEL_NUMBER | MEMBER_UNIQUE_NAME | MEMBER_NAME | MEMBER_TYPE | MEMBER_GUID | MEMBER_CAPTION | MEMBER_ORDINAL | CHILDREN_CARDINALITY | PARENT_LEVEL | PARENT_UNIQUE_NAME | PARENT_COUNT | DESCRIPTION <user_defined_property> ::= <dim_hier>.<identifier> | <level>.<identifier> | <member>.<identifier>
Note The three productions recognize the fact that a property can apply to all the members of a dimension, to all the members of a level, or just to a member.
<tuple> ::= <member> | (<member> [, <member>...]) | <tuple_value_expression>
Note Each member must be from a different dimension or from a different hierarchy.
<set> ::= <member>:<member>
Note Each member must be from the same hierarchy and the same level.
| <set_value_expression> | <open_brace>[<set>|<tuple> [, <set>|<tuple>...]]<close_brace>
Note Duplicates (if any) are always retained when specifying sets in this fashion.
| (<set>) <open_brace> ::= { <close_brace> ::= } <open_bracket> ::= [ <close_bracket> ::= ] <underscore> ::= _ <alpha_char> ::= a | b | c | ...| z | A | B | C | ... | Z <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1998-2001 Microsoft Corporation. All rights reserved.