About the Series ...
This article is a member of the series, MDX Essentials.
The series is designed to provide hands-on application of the fundamentals of
the Multidimensional Expressions (MDX) language, with each tutorial
progressively adding features designed to meet specific real-world needs.
For more information about the series in general, as well as
the software and systems requirements for getting the most out of the lessons
included, please see my first article, MDX at
First Glance: Introduction to MDX Essentials.
Note: Service Pack 3 updates are assumed for MSSQL
Server 2000, MSSQL Server 2000 Analysis Services, and the related Books
Online and Samples.
Overview
In
this lesson, we will introduce a function that provides us the ability to
derive a set by systematically applying a set expression to each
of the members of a set we define. GENERATE() is a potent function in
our MDX toolset, in that it enables us to select precisely only certain
members of a dimension level. It effectively operates upon two sets to
create a new set, based upon the members of a second set that are also in a
primary set.
We
will consider elementary uses of the GENERATE() function in this
article, and then explore more sophisticated uses in subsequent articles. As
with the Basic Functions articles within this series, our
objective is to build a foundation in the rudiments of the function, from which
we can expand to more sophisticated exploitation in subsequent articles.
As we
have noted the case to be with many other MDX functions, the GENERATE() function
can be leveraged to perform tasks that range from the simple to the
sophisticated. For that matter, in the limited body of knowledge that is
commonly available surrounding MDX in general, at this writing, hands-on references
to GENERATE() remain elusive, with the few documents that discuss the
function describing it as "complex." We will introduce the
function, commenting upon its operation and touching upon uses at a general
level, and then we will:
- Examine the syntax surrounding the function;
- Undertake illustrative examples of the use of the function,
in a couple of practice exercises;
- Briefly discuss the results datasets we obtain in the
practice examples.