Microsoft KB Archive/917929

= FIX: In SQL Server 2005 Analysis Services, the session-scoped calculated members or the query-defined calculated members may not return the expected results =

Article ID: 917929

Article Last Modified on 7/26/2006

-

APPLIES TO


 * Microsoft SQL Server 2005 Analysis Services

-



Bug #: 450532 (SQLBUDT)

Bug #: 50000120 (SQL Hotfix)



Microsoft distributes Microsoft SQL Server 2005 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2005 fix release.



SUMMARY
This article describes the following about this hotfix release:
 * The issues that are fixed by the hotfix package
 * The prerequisites for installing the hotfix package
 * Whether you must restart the computer after you install the hotfix package
 * Whether you must make any registry changes
 * The files that are contained in the hotfix package



SYMPTOMS
When a cube Multidimensional Expressions (MDX) script contains calculated members in Microsoft SQL Server 2005 Analysis Services, the session-scoped calculated members or the query-defined calculated members may not return the expected results.

Note In certain scenarios, this problem may not occur when the Aggregate function or the VisualTotals function is used.



CAUSE
This problem occurs when the calculated members are resolved before any session-scoped calculations are resolved or before any query-defined calculations are resolved.



RESOLUTION
To resolve this problem, apply the cumulative hotfix package (build 2153) for SQL Server 2005 that is discussed in Microsoft Knowledge Base article 918222. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

918222 Cumulative hotfix package (build 2153) for SQL Server 2005 is available



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
This problem does not occur in SQL Server 2000 Analysis Services. In SQL Server 2000 Analysis Services, you can set the solve order for the session-scoped calculations or for the query-defined calculations because all the calculations have absolute positions. When you set the solve order, you control the order in which all the calculations are performed.

In SQL Server 2005 Analysis Services, generic client applications can work together with cubes that contain complex calculations without having to consider the specific implementation of the calculations. Generic client applications can do this because all the calculations have relative positions. The relative position in the solve order is an offset from the end of the cube script.

In certain scenarios, you may want to run the session-scoped calculated members or the query-defined calculated members before you run the cube-level calculations. If the session-scoped calculated members or the query-defined calculated members use the Aggregate function or the VisualTotals function, this problem may not occur. If the session-scoped calculated members or the query-defined calculated members do not use the Aggregate function or the VisualTotals function, this problem may occur.

This hotfix introduces a new calculation property that is named the SCOPE_ISOLATION property. After you apply this hotfix, you can control the order in which the calculations are performed when you set the solve order for the session-scoped calculations or for the query-defined calculations.

After you apply this hotfix, the syntax of the MDX query should resemble the following code example. WITH MEMBER [Customer].[Customers].[US].USAWithoutSTATE AS '[Customer].[Customers].[Country].&[US] - [Customer].[Customers].[State Province].&[WA]', SOLVE_ORDER=5, SCOPE_ISOLATION=CUBE SELECT {US,USWithoutSTATE} on 0 FROM Sales WHERE ProfitRatio In this code example, the SCOPE_ISOLATION property inserts the solve order of the calculated member into the cube's MDX script when the calculated member is evaluated.

After you apply this hotfix, the syntax of the Backus-Naur Form (BNF) should resemble the following code example.  ::= CREATE   [...]  ::= MEMBER . AS ' ' [,] ::= CURRENTCUBE | <Cube Identifier> <property-definition-list> ::= <property-definition> | <property-definition>, <property-definition-list> <property-definition> ::= <property-identifier> = <property-value> <property-identifier> ::= VISIBLE | SOLVEORDER | FORMAT_STRING| <ole db member properties> <property-value> ::= | <property-definition> ::= SCOPE_ISOLATION = CUBE <optional-scope> ::= | SESSION

<div class="references_section">