Retrieving Member Properties

In the axis specification for a given axis, the set expression selects tuples to populate the axis. The dataset returns some basic information about each member in each tuple, such as the member name, parent level, the number of children, and so on. These are referred to as member properties. Members often have additional properties associated with them, and properties usually are available for all members at a given level. For example, the Products level may offer the SKU, SRP, Weight, and Volume properties for each product. Those properties are not dimensions but contain additional information about dimension members. An application might want to extend member information by adding member properties on the axis. Therefore, each level of each dimension may contain a set of available properties for the members.

Additional member properties can be selected by using the DIMENSION PROPERTIES keyword after the set expression of the axis specification*.* For example, the following expression returns the dataset shown in the diagram:

SELECT NON EMPTY Products.MEMBERS
   DIMENSION PROPERTIES Products.SKU, Products.SRP ON ROWS,
CROSSJOIN(Years, (Sales, BudgetedSales)) ON COLUMNS
FROM SalesCube
WHERE (January, SalesRep.[All], Geography.USA)

The expression returns the following dataset:

Sample dataset

You may specify only those dimension properties projected on the axis for that particular axis.

OLE DB for OLAP requires that all providers support a list of mandatory member properties, which are the same as the columns of the MEMBERS rowset. For more information, see Mandatory Member Properties.

The BNF form for specifying properties in the axis specification is <property_name>for mandatory properties and <level_name>.**<property_name> for all other properties. Because optional properties are associated with levels, named levels have to exist for this to work. If the data store does not support named levels, OLE DB for OLAP requires that it recognize a dummy level whose name is the same as the dimension name. All members belong to this level. Now the consumer can get any optional property by referring to it as <dimension_name>.<**property_name>.

Note

Because mandatory properties cannot be qualified by the dimension name or the level name, a consumer cannot choose different mandatory properties for different dimensions (or levels) on an axis. For example, if the ROWS axis has Geography and SalesRep dimensions, the consumer cannot choose MEMBER_CAPTION for the Geography dimension nor MEMBER_UNIQUE_NAME for the SalesRep dimension. The consumer must choose the same property (or properties) for all dimensions on an axis.