About the Series ...

This is the twelfth article 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 needed for getting the most out of the lessons included, please see the 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.

What We Accomplished in our Last Article

In the last article of the series, MDX Time Series Functions, Part III: The LastPeriods() and ParallelPeriod() Functions, we concluded our three-article group of lessons on the time series functions, a specialized family of functions that MDX provides to perform analysis within the context of time. After discussing in general the common business need to analyze data over time, we first overviewed the LastPeriods() and ParallelPeriod() functions. For each function, we then illustrated the syntax that is appropriate for its effective use. Finally, we tested our understanding of how to leverage the function by undertaking a relevant practice exercise, discussing the results we obtained and performing additional proof exercises to confirm their accuracy.


In this lesson, we will focus our attention on a basic function that, however humble, finds itself in use in expressions and queries that rank from the simplest, perhaps, to the most advanced. The Order() function provides the sorting capabilities we need within MDX, and is thus an important part of our analysis toolsets.

As simple as mere ordering might appear to be, the support of hierarchies in MDX makes the processes a bit more involved. Two general types of order, hierarchized and nonhierarchized, can be anticipated. Ordering in a hierarchized manner arranges members within a given hierarchy, and then arranges the hierarchical levels. Nonhierarchized ordering, in contrast, ignores hierarchy completely in the arrangement of all members within the affected set.

Along with an introduction to the Order() function, this lesson will include:

  • an examination of the syntax surrounding the function;
  • illustrative examples of the uses of the function in practice exercises;
  • a brief discussion of the MDX results we obtain in the practice examples.