FIX: Unexpected results from partial aggregations based on conversions

This article has been archived. It is offered "as is" and will no longer be updated.
CPR - SQL 2000 - Hotfix in SP4
BUG #: 363566 (SHILOH_BUGS)
SYMPTOMS
Queries that use aggregate functions can cause unexpected results if the column or columns that you apply the aggregate function to is converted and SQL Server chooses to use a partial aggregation execution plan.
RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional 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 fix 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   --------------------------------------------------------------   17-Jan-2002  20:45  2000.80.568.0      29,244  Dbmslpcn.dll   30-Aug-2002  13:08                    786,432  Distmdl.ldf   30-Aug-2002  13:08                  2,359,296  Distmdl.mdf   11-Dec-2002  09:50                        180  Drop_repl_hotfix.sql   02-Jul-2002  07:35  2000.80.650.0     107,088  Impprov.dll   11-Dec-2002  09:50                      1,402  Inst_repl_hotfix.sql   19-Jul-2002  08:56                    774,516  Instdist.sql   20-Aug-2002  08:24  2000.80.679.0     111,172  Logread.exe   15-Dec-2002  15:21  2000.80.717.0      90,692  Msgprox.dll   06-Apr-2002  18:08  2000.80.606.0      62,024  Odsole70.dll   02-Jan-2002  17:59                     18,185  Qfe356326.sql   20-Aug-2002  08:47  2000.80.679.0     135,748  Qrdrsvc.exe   26-Aug-2002  14:49  2000.80.679.0     406,088  Rdistcom.dll   03-Oct-2001  17:36                    437,302  Replcom.sql   20-Aug-2002  08:33  2000.80.679.0     152,136  Replmerg.exe   25-Nov-2002  13:43                  1,004,990  Replmerg.sql   15-Dec-2002  15:21  2000.80.717.0     221,768  Replprov.dll   15-Dec-2002  15:21  2000.80.717.0     303,688  Replrec.dll   03-Oct-2001  17:36                    986,906  Replsys.sql   03-Oct-2001  17:36                    881,228  Repltran.sql   26-Aug-2002  14:49  2000.80.679.0     283,208  Rinitcom.dll   16-Sep-2002  14:31                    390,045  Securityhotfix.sql   26-Aug-2002  14:49  2000.80.679.0      28,672  Sqlagent.dll   26-Aug-2002  10:39  2000.80.679.0     311,872  Sqlagent.exe   28-Aug-2002  08:32  2000.80.679.0      49,152  Sqlagent.rll   26-Aug-2002  14:49  2000.80.679.0      53,824  Sqlcmdss.dll   28-Aug-2002  08:40  2000.80.679.0      12,288  Sqlcmdss.rll   24-Oct-2002  09:37  2000.80.695.0     176,696  Sqlmap70.dll   16-Dec-2002  16:17  2000.80.718.0   7,471,185  Sqlservr.exe   01-Nov-2002  10:56  2000.80.698.0      45,644  Sqlvdi.dll   17-Jan-2002  20:45  2000.80.568.0      29,244  Ssmslpcn.dll   04-Dec-2002  15:34  2000.80.712.0      82,492  Ssnetlib.dll   26-Nov-2002  17:14  2000.80.709.0      25,148  Ssnmpn70.dll   06-Apr-2002  18:08  2000.80.606.0      70,208  Xplog70.dll   06-Apr-2002  18:08  2000.80.606.0      53,828  Xpqueue.dll   06-Apr-2002  18:08  2000.80.606.0     156,228  Xprepl.dll   11-Jul-2002  17:00  2000.80.658.0     279,104  Xpstar.dll   16-Sep-2002  15:12  2000.80.686.0      98,872  Xpweb70.dll				
Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.


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
The following is an example of an execution plan with a partial aggregation:
  |--Compute Scalar(DEFINE:([Expr1004]=Convert([globalagg1006])))       |--Stream Aggregate(DEFINE:([globalagg1006]=SUM([partialagg1005])))            |--Nested Loops(Inner Join, WHERE:(Convert([x].[a])=Convert([y].[a])))                 |--Hash Match(Aggregate, HASH:([y].[a]), RESIDUAL:([y].[a]=[y].[a]) DEFINE:([partialagg1005]=COUNT(*)))                 |    |--Table Scan(OBJECT:([pubs].[dbo].[y]))                 |--Table Scan(OBJECT:([pubs].[dbo].[x]))
Properties

Article ID: 811703 - Last Review: 02/27/2014 21:16:18 - Revision: 4.4

  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000, Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB811703
Feedback