Set Functions for Expressing User-Interface Operations

For applications that have a graphical user interface for displaying multidimensional schemas and datasets, drill-down and drill-up operations are commonly exposed in the user interface. Drilling operations can take place on a per-member basis or on a per-level basis. For example, "Take the set {USA, France}, and give me a set that contains USA, France, and all the children of USA" drills down by member. On the other hand, "Take the set {USA, France}, and give me a set that contains USA, France, and all the cities in USA" drills down by level. Any of these drilling operations can be combined with a top or a bottom condition. For example, "Take the set {USA, France}, and give me a set that contains USA, France, and the top three children of USA based on Sales."

MDX has an assortment of set functions that encapsulate these user-interface operations. See the following topics in this section:

Note

All of the functions discussed in this section require that the sets on which they operate be formed from a single dimension. That is, the set argument(s) to these functions cannot be the result of a CROSSJOIN operation. The list of functions with this restriction is DRILLDOWNMEMBER, DRILLUPMEMBER, DRILLDOWNMEMBERTOP, DRILLUPMEMBERTOP, DRILLDOWNMEMBERBOTTOM, DRILLDOWNLEVEL, DRILLDOWNLEVELTOP, DRILLDOWNLEVELBOTTOM, DRILLUPLEVEL, and TOGGLEDRILLSTATE.