Databases Reference
In-Depth Information
Subcube 0:
D1.Members,
M1(M1*M2)
*
Subcube 1:
D1.Members,
M1
Subcube 2:
D1.Members,
M2
Member Logical Op
Member Logical Op
Subcube 1:
D1.Members,
M1
Subcube 2:
D1.Members,
M2
Storage Engine Op
Storage Engine Op
FIGURE 29.11
Logical plan for the multiplication operator.
and the system just cannot derive the
DefaultValue
; in such cases, the default value will
be a
N/A
value.
An expression is static when it would yield the same value in any coordinate of the
subcube. For example, the expression
[Time].[Time].[Month].Members.Count
is static
because the number of months doesn't depend on any other dimension of the cube. On
the other hand, the
M1.Value
expression is dynamic because its value depends on the
coordinate of the cube in which it evaluated.
Even when an expression is dynamic it can be invariant (static) in the context of some
attributes, but variant for others. For example, the expression
[Time].[Time].
PrevMember
doesn't depend on either the
Product
or
Store
dimension, but it depends on
the
Time
dimension. Execution of the query in Listing 29.2 (with results shown in Figure
29.12) demonstrates that the results of the
PrevMember
function depend only on the
Time
dimension.
LISTING 29.2
A Simple MDX Query
WITH
MEMBER measures.x AS
[Time].[Time].PrevMember.Name
SELECT
[Product].[Products].[Product Family].MEMBERS ON COLUMNS
,{
[Time].[Time].[Month].[June]
,[Time].[Time].[Month].[July]
,[Time].[Time].[Month].[August]
} ON ROWS
FROM [Warehouse and Sales]
WHERE
measures.x
Search WWH ::
Custom Search