Unlike the WHERE clause in a SQL query, which restricts rows returned in the result set, an MDX WHERE clause points to a specific intersection of cube space. Let's look at a simple three dimensional-cube to illustrate this:

Each cell in the cube represents an intersection of dimensions and measures. Specific cells can be selected by describing an intersection. For example, you can point to the cell at the intersection of Net Sales, 2005, and Automatic Umbrella, which returns Net Sales of Automatic Umbreallas in 2005, shown in this graphic:

It's important to remember that a cell intersection is defined by one member, and only one member, from any dimension(s), as is represented by the Net Sales member from the Measure dimension, the Year 2005 member from the Time dimension, and the Automatica Umbrella from the Product dimension. More formally, this set of pointers (or cell coordinates) is referred to as a tuple. The tuple expression uses this syntax:

([Measures].[Net Sales], [Time].[2005], [Product].[2005])

A tupe can be defined as having one, two, three, or more members, but only one member from any dimension in the cube. Each dimension member is separated by a comma and the entire tuple is enclosed in parentheses. Using a tuple in an MDX WHERE clause is called "slicing" the cube.

Here's a full MDX query with a WHERE clause for 2005:

SELECT

{ [Measures].[0D_NETSALES] } ON COLUMNS,

{ [0D_PH2].[LEVEL01].members } ON ROWS

FROM [$0D_DX_M01]

WHERE ([0CALYEAR].[2005]

The query and the result set are shown in the following graphic: