Next in Our Series
In the first article of this dual-phased lesson, we resumed our exploration of calculated members. We practiced the creation of dynamic calculated members, both on measure and non-measure dimensions, comparing and contrasting the two general types in a way that makes selection and planning for real-world uses straightforward in most respects. We discussed ways of handling the creation of calculated members with MDX, and practiced adding multiple members in a single MDX query.
We exposed a means of controlling the order in which calculated members are solved, as well as discussing why precedence of calculation might be critical to generating expected results. We then moved into the realm of aggregation functions, practicing with cumulative totals and other uses. Finally, we drew upon our exposure to member functions in earlier lessons to calculate values based upon the retrieval of member properties with our calculated members, completing practice examples that demonstrated the potential value of this capability.
In the next article, "Working with Calculated Cells," we will explore calculated cells, which enable us to apply functionality previously reserved for calculated members, custom members, and custom rollup formulas to a specific range of cells (or even to a single cell). We will describe the construction of a calculated cell, touching upon the basic elements that make it up. We will discuss how this functionality can allow us to finely tune the performance of both cubes and queries.
Although we will discuss the creation of calculated cells with a global scope, we will focus mainly on their creation within a session scope, from which they are available only from within MDX queries that meet specific criteria. In addition, we will practice the use of the WITH statement in these queries to create calculated cells, while discussing how a calculated cell created in this way offers greater flexibility for client applications in many cases.
Finally, we will create calculated cells through examples in which we define them within MDX set expressions, and will expose the procedures behind applying an MDX value expression selectively. Our objective will be to conditionally apply the expression to specific cells, depending upon a condition described by an MDX logical expression.