Article ID: 834491
Article Last Modified on 11/21/2006
APPLIES TO
- Microsoft SQL Server 2000 Analysis Services
- Microsoft SQL Server 2000 Analysis Services
Bug#: 14194 (Plato7x)
Microsoft distributes Microsoft SQL Server 2000 hotfixes as one downloadable file. Because the hotfixes 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
In SQL Server 2000, when you use a weighted writeback formula in a Multidimensional Expressions (MDX) UPDATE CUBE statement, a small remainder may be left after the new value is allocated by using the specified formula. The remaining value is inserted in the writeback table for the last cell that is evaluated in the writeback set that the UPDATE CUBE statement specifies. If the last cell is NULL, the cell will still be updated with the remainder value. This behavior may cause records to be displayed for dimension members that were previously empty. Sometimes, the remainder value is so low that the client tool will display the value as zero (0).
For example, the following MDX UPDATE CUBE statement sets the 1998, Forecast, and General & Administrative expenses for the state of California to a value of $750,000. The new value is allocated to the individual stores in California based on their contribution to the total Current Year's Actual Gross Sales for California in the previous year.
UPDATE CUBE [Budget] SET ( [Category].[All Category].[Forecast], [Account].[All Account].[Net Income].[Total Expense].[General & Administration], [Store].[All Stores].[USA].[CA], [Time].[1998], [Measures].[Amount] ) = 750000 USE_WEIGHTED_ALLOCATION BY iif( IsEmpty(( ParallelPeriod([Time].[Year], 1, [Time].Currentmember), [Category].[All Category].[Current Year's Actuals], [Store].Currentmember, [Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount])), -- Sales Value is empty for the previous year so leave the new value as NULL. NULL, -- Otherwise take the Current Years Actual Gross Sales for the current store, --divide it by the total for all of California to get the percentage contribution --of this store to Gross Sales and allocate that percentage of the new --General & Administration value to this store. ( ParallelPeriod([Time].[Year], 1, [Time].Currentmember) , [Category].[All Category].[Current Year's Actuals], [Store].Currentmember, [Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount] ) / ([Time].[1997], [Category].[All Category].[Current Year's Actuals], [Store].[All Stores].[USA].[CA], [Account].[All Account].[Net Income].[Net Sales].[Gross Sales], [Measures].[Amount] ) )
Because Alameda has no value for the Gross Sales account in the Current Year's Actuals category for 1997, you would expect Alameda to have no General & Administration value assigned. However, if you run this UPDATE CUBE statement and then you run the following SELECT statement, the results show a value of 0.002 for Alameda:
SELECT [Measures].Members ON COLUMNS, { [Store].[All Stores].[USA].[CA], Descendants([Store].[All Stores].[USA].[CA], [Store].[Store City]) } ON ROWS FROM [Budget] WHERE ( [Category].[All Category].[Forecast], [Time].[1998] , [Account].[All Account].[Net Income].[Total Expense].[General & Administration] )
The following table displays the expected results:
Amount | |
---|---|
CA | 750000 |
Alameda | |
Beverly Hills | 215575.4595 |
Los Angeles | 257017.7488 |
San Diego | 256479.9204 |
San Francisco | 20926.8713 |
The following table displays the actual results:
Amount | |
---|---|
CA | 750000 |
Alameda | 0.002 |
Beverly Hills | 215575.4575 |
Los Angeles | 257017.7488 |
San Diego | 256479.9204 |
San Francisco | 20926.8713 |
After you apply this fix, the remainder value will be applied to one of the cells in the writeback set.
RESOLUTION
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) 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 ------------------------------------------------------- 16-Jul-2004 01:51 8.0.960.0 221,760 Msmdcb80.dll 16-Jul-2004 02:17 8.0.0.960 4,063,808 Msmddo80.dll 16-Jul-2004 01:45 8.0.960.0 1,036,864 Msmdgd80.dll 16-Jul-2004 01:39 8.0.960.0 172,608 Msmdpump.dll 16-Jul-2004 02:27 8.0.0.960 9,642,564 Msmdsgn80.dll 16-Jul-2004 01:40 8.0.960.0 1,839,684 Msmdsrv.exe 16-Jul-2004 02:03 8.0.960.0 2,085,456 Msolap80.dll 16-Jul-2004 01:17 8.0.960.0 446,524 Msmdsgn.rll 16-Jul-2004 00:58 8.0.960.0 213,068 Msolap80.rll
Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.
SQL Server 2000 Analysis Services 64-bit
For additional informationabout a hotfix build that is designed to be applied on a server that is running SQL Server 2000 Analysis Services 64-bit, or to determine if a hotfix 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:
831653 Availability of Analysis Services 2000 64 bit hotfix build
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
MORE INFORMATION
For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
Additional query words: OLAP
Keywords: kbbug kbfix kbqfe kbsqlserv2000presp4fix kbhotfixserver KB834491