Introduction to MSSQL Server 2000 Analysis Services: Semi-Additive Measures and Periodic Balances
December 13, 2004
About the Series ...
This article is a member of the series Introduction to MSSQL Server 2000 Analysis Services. The series is designed to provide hands-on application of the fundamentals of MS SQL Server 2000 Analysis Services, with each installment progressively adding features and techniques designed to meet specific real - world needs. For more information on the series, as well as the hardware / software requirements to prepare for the exercises we will undertake, please see my initial article, Creating Our First Cube.
Note: Service Pack 3 updates are assumed for MSSQL Server 2000, MSSQL Server 2000 Analysis Services, and the related Books Online and Samples. Images are from a Windows 2003 Server environment, upon which I have also implemented MS Office 2003, but the steps performed in the articles, together with the views that result, will be quite similar within any environment that supports MSSQL Server 2000 and MSSQL Server 2000 Analysis Services ("Analysis Services" or "MSAS"). The same is generally true, except where differences are specifically noted, when MS Office 2000 and above are used in the environment, in cases where MS Office components are presented in the article.
Most of the measures with which we work in our daily Analysis Services environments are additive, and include various options for easy aggregation, comprised of the ever-familiar SUM, MAX, MIN and COUNT. Most base measures involving transactions, such as sales or direct expenses, are inherently additive. We typically find additive measures simple and useful in our work within analysis and reporting systems, because there are no inherent restrictions on how they are used in our cubes. Such measures can be sliced and diced in any "direction," for example. Using the four aggregation types to derive aggregates from previously aggregated results is only one example of how we can easily leverage the power of OLAP as implemented in MSAS. With additive measures, aggregation is applied consistently to all dimensions: the measures roll up equally well, within the same aggregation type, across all.
However, as most of us are aware, semi-additive measures exist in the business environment, as well. Periodic measurements, such as account balances (for example, the daily balance of a bank account), level measurements (such as on-hand inventory quantities or personnel headcounts), and the like, do not share the qualities of fully additive measures. Semi-additive measures are additive across some dimensions within the cubes they inhabit, but are not additive across one or more of the dimensions of the cube.
As an illustration, an inventory level might be additive along the Product, Store and Warehouse dimensions of a cube, but would be non-additive across the Time dimension of the cube. Alternatively, a daily bank account balance might certainly be aggregated usefully in an average over Time (a common case would be an average daily balance), and perhaps in minimum and maximum contexts, but summing the daily balance over time would present a meaningless result.
In this article, we will explore the management of semi-additive measures, creating a calculated measure (a calculated member that belongs to the Measures dimension) that is not fully additive, to meet the business requirements of a hypothetical group of information consumers. Within our exploration of the semi-additive measures, we will accomplish the following: