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 continue our examination of the IIF() function,
which we began in my article String / Numeric Functions: Introducing the IIF() Function. In that introductory session, we explored the IIF()
function, discussing its primary purpose, and touching upon its many
capabilities, particularly when used in conjunction with other MDX functions.
We discussed generalities about the use of the function, and then undertook
practice examples that focused on two basic uses of IIF() to meet
hypothetical business requirements that mirrored needs we might find in the "real
world." If you are joining the series with this article, please consider
reading String / Numeric
Functions: Introducing the IIF() Function to gain a general overview of the function before you delve
into the multi-step exercise in sections below.
In
this article, we will continue our examination of the IIF() function,
focusing on more evolved uses of the function, within a more involved practice
scenario. We will not rehash the introduction, discussion or syntax sections
that we provided in our last article, except in situations where we wish to
emphasize points from those sections in the context of our current activities.
Our focus here will be to provide another hands-on illustration, where we can
experience firsthand the capabilities that the function can offer, and to
expose a sequential set of steps aimed at getting to a specific outcome in the
support of a set of hypothetical business requirements.
As has
been the case with most of my articles, we will introduce a business
requirement as requested by a group of information consumers. After we discuss
their needs in detail, we will begin a multi-step exercise that builds to a
successful end result. Along with the introduction of the expressed business
needs, this lesson will include:
-
Creation of a core query, upon which we will build our end
solution; -
Creation of interdependent calculated members, to provide
requested measures that do not exist "natively" in the cube
structure; -
Use of the IIF() function, in conjunction with a member
property to achieve intended behavior within a calculated member; -
Addition of the VBA VAL() function, to convert the member
property to a usable data type; -
Addition of the FILTER() and ORDER() functions, to
render a presentation that meets the needs of the intended audience; -
A brief discussion of the results DataSets we obtain in each of the
steps of the practice example.