dcsimg

MDX Essentials: Basic Set Functions: Subset Functions: The Tail() Function - Page 3

June 14, 2004

Practice

The Basics

To reinforce our understanding of the basics we have covered so far, we will use the Tail() function in a manner that illustrates its operation. We will do so in simple scenarios that place Tail() in contexts similar to those we used for Head() in our last article. The intent of our replication here is, again, to provide contrast in the operation of the results datasets returned by the functions while highlighting their similarities in operation.

To begin, we will construct a SELECT query with a clearly defined set (Quarters in the Year) within our function, to demonstrate its operation in a straightforward manner.

Let's return to the MDX Sample Application as a platform from which to construct and execute the MDX we examine, and to view the results datasets we obtain.

1. Start the MDX Sample Application.

2. Clear the top area (the Query pane) of any queries or remnants that might appear.

3. Ensure that FoodMart 2000 is selected as the database name in the DB box of the toolbar.

4. Select the Warehouse cube in the Cube drop-down list box.

Let's assume, for our practice example, that we have received a call from corporate Logistics, as we did in our last article, needing some shipping metrics. The Logistics information consumers wish to know total Units Shipped balances for the last three Quarters of 1998, by U. S. States of Warehouse operation.

To rephrase, the objective will be to present a single measure, Units Shipped, for the last three Quarters of 1998, broken out by U. S. Warehouse-State. While we could certainly present this information by including each of the three Quarters individually in our query, we will use the Tail() function to compact our query, and to leverage the .Children function, similar to the scenario we described in the Syntax section.

Let's construct a simple query, therefore, to return the last three Quarters as columns and the U. S. Warehouse-States as rows.

5. Type the following query into the Query pane:


-- MDX020-1, Use of Tail() Function in a Basic Query
SELECT
   {TAIL([Time].[1998].Children, 3)} ON COLUMNS,
   {[WAREHOUSE].[Country].[USA].Children} ON ROWS
FROM
 [Warehouse]
WHERE (Measures.[Units Shipped])

6. Execute the query by clicking the Run Query button in the toolbar.

The Results pane is populated by Analysis Services, and the dataset shown in Illustration 1 appears.


Illustration 1: Result Dataset - Tail() Function in Basic Query

We see Q2, Q3, and Q4 populating the columns across, and the U.S. Warehouse-States (from the Warehouse dimension) appearing on the row axis.

7. Select File -> Save As, name the file MDX020-1, and place it in a meaningful location.

8. Leave the query open for the next section.

Handling of Numeric Value

Next, let's explore the handling of omitted numeric values, among the other "default" treatments that the Tail() function dispenses. We can see these treatments in action by simulating some quick scenarios.

1. Within the query we have saved as MDX020-1, replace the top comment line of the query with the following:

-- MDX020-2, Use of Tail() Function - Omitted Numeric Expression

2. Save the query as MDX020-2, to prevent damaging MDX020-1.

3. Remove the comma (",") and numeral 3 from the following line of the query:

              {TAIL([Time].[1998].Children, 3)} ON COLUMNS,

The Query pane appears as shown in Illustration 2.


Illustration 2: The Query with Omitted Numerical Expression








The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers