Microsoft KB Archive/834494

= FIX: Calculated members may return incorrect results for dynamic formulas =

Article ID: 834494

Article Last Modified on 11/21/2006

-

APPLIES TO


 * Microsoft SQL Server 2000 Analysis Services
 * Microsoft SQL Server 2000 Analysis Services

-



Bug #: 14241 (Plato 7X)



Microsoft distributes SQL Server 2000 hotfixes 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 2000 hotfix release.



SYMPTOMS
You can define a calculated member by using a formula that references the set of an axis in the current query as part of the formula. However, if you define a calculated member this way, the value of the calculated member may return incorrect results.

For example, the first query that uses the calculated member returns correct values. However, later queries may reflect the same values that are returned by the first query.

For example, the following expression changes the denominator of the calculation if the Store dimension is in the columns axis of the current query: IIF (NOT( IsError(intersect( {[Store].[All Stores]}, strtoset(&quot;axis(0)&quot;) ).count)), --Store is on the columns axis of the query; use the current member (default). ([Measures].[Unit Sales]/ ( [Customers].[All Customers], [Product].[All Products], [Measures].[Unit Sales] ) ), --Else use the ALL level of the Store dimension. ([Measures].[Unit Sales]/ ([Store].[All Stores], [Customers].[All Customers], [Product].[All Products], [Measures].[Unit Sales]) ) )



CAUSE
To optimize performance for calculations, the Analysis Services OLE DB for OLAP provider uses a cache for calculation results. Later, the cached result is used for calculations that are referenced multiple times. In the earlier example, the results of the intersect function are cached. This behavior causes the calculated member to use an incorrect formula.



Service pack information
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.   Date         Time   Version            Size    File name --  03-Nov-2003  17:08  8.0.874.0         217,668  Msmdcb80.dll 17-Jan-2004 01:47  8.0.0.909       4,063,812  Msmddo80.dll 03-Nov-2003 17:08  8.0.874.0       1,032,768  Msmdgd80.dll 28-Oct-2003 02:58  8.0.823.0         172,608  Msmdpump.dll 28-Oct-2003 02:58  8.0.0.864       9,638,468  Msmdsgn80.dll 17-Jan-2004 01:47  8.0.909.0       1,835,588  Msmdsrv.exe 17-Jan-2004 01:47  8.0.909.0       2,077,264  Msolap80.dll 10-May-2003 08:05  8.0.820.0         213,069  Msolap80.rll Note Because of file dependencies, the most recent hotfix or feature that contains the previous files may also contain additional files.

Service pack information
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information
For more information about a hotfix build that is designed for a server that is running SQL Server 2000 Analysis Services 64-bit or to find out whether a fix is scheduled to be included in SQL Server 2000 Analysis Services 64-bit Service Pack 4, click the following article number to view the article in the Microsoft Knowledge Base:

825804 FIX: Hotfix information for build 8.0.872 of SQL Server 2000 Analysis Services 64-bit



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section. This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.

