FIX: Unexpected results from partial aggregations based on conversions (811703)



The information in this article applies to:

  • 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 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (MSDE)
  • Microsoft SQL Server 2000 Developer Edition 64 bit
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit

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]))

Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbQFE kbSQLServ2000preSP4fix kbfix kbbug KB811703