home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC70754 Status: Geschlossen

EXTENDING SUPPORT OF SUBQUERY IN AGGREGATE FUNCTIONS

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
Starting from version 9.7 Fix Pack 4, DB2 will support subquery 
and scalar subselect in aggregate functions. 
 
For example: 
 
This SQL statement below returns the sum of the sales amount 
group by department if the department number exists in table 
DEPARTMENT or 0 if the department number does not exist in table 
DEPARTMENT. 
 
SELECT    S.DEPTNO, SUM (CASE WHEN EXISTS(SELECT 1 FROM 
DEPARTMENT D WHERE D.DEPTNO = S.DEPTNO) THEN S.AMOUNT ELSE 0 
END) 
FROM       SALES S 
GROUP BY S.DEPTNO 
; 
 
Assuming column DEPARTMENT.DEPTNO is defined NOT NULL, the above 
statement can also be written without the subquery in aggregate 
function as below: 
 
WITH D(DEPTNO) AS (SELECT DISTINCT DEPTNO FROM DEPARTMENT) 
SELECT    S.DEPTNO, SUM(CASE WHER D.DEPTNO IS NOT NULL THEN 
S.AMOUNT ELSE 0 END) 
FROM       SALES S LEFT JOIN D 
ON           S.DEPTNO = D.DEPTNO 
GROUP BY  S.DEPTNO 
;
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* User working with subqueries in aggregate functions          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* Starting from version 9.7 Fix Pack 4, DB2 will support       * 
* subquery                                                     * 
* and scalar subselect in aggregate functions.                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* For example:                                                 * 
*                                                              * 
*                                                              * 
*                                                              * 
* This SQL statement below returns the sum of the sales amount * 
*                                                              * 
* group by department if the department number exists in table * 
*                                                              * 
* DEPARTMENT or 0 if the department number does not exist in   * 
* table                                                        * 
* DEPARTMENT.                                                  * 
*                                                              * 
*                                                              * 
*                                                              * 
* SELECT    S.DEPTNO, SUM (CASE WHEN EXISTS(SELECT 1 FROM      * 
*                                                              * 
* DEPARTMENT D WHERE D.DEPTNO = S.DEPTNO) THEN S.AMOUNT ELSE 0 * 
*                                                              * 
* END)                                                         * 
*                                                              * 
* FROM      SALES S                                            * 
*                                                              * 
* GROUP BY S.DEPTNO                                            * 
*                                                              * 
* ;                                                            * 
*                                                              * 
*                                                              * 
*                                                              * 
* Assuming column DEPARTMENT.DEPTNO is defined NOT NULL, the   * 
* above                                                        * 
* statement can also be written without the subquery in        * 
* aggregate                                                    * 
* function as below:                                           * 
*                                                              * 
*                                                              * 
*                                                              * 
* WITH D(DEPTNO) AS (SELECT DISTINCT DEPTNO FROM DEPARTMENT)   * 
*                                                              * 
* SELECT    S.DEPTNO, SUM(CASE WHER D.DEPTNO IS NOT NULL THEN  * 
*                                                              * 
* S.AMOUNT ELSE 0 END)                                         * 
*                                                              * 
* FROM      SALES S LEFT JOIN D                                * 
*                                                              * 
* ON          S.DEPTNO = D.DEPTNO                              * 
*                                                              * 
* GROUP BY  S.DEPTNO                                           * 
*                                                              * 
* ;                                                            * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Install 9.7 fixpack 4                                        * 
****************************************************************
Local-Fix:
verfügbare FixPacks:
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
24.08.2010
28.04.2011
28.04.2011
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.FP4
Problem behoben lt. FixList in der Version
9.7.0.4 FixList