Werte für Zwischensummenzeilen neu berechnen

Vorgehensweise:

Sie können anstelle von SUB-TOTAL und SUBTOTAL die Befehle SUMMARIZE und RECOMPUTE verwenden, um das Ergebnis eines COMPUTE-Befehls neu zu berechnen. SUMMARIZE ähnelt SUB-TOTAL darin, dass bei jedem Sortierumbruch die Werte neu berechnet werden. RECOMPUTE ähnelt SUBTOTAL darin, dass die Werte nur beim angegebenen Sortierumbruch neu berechnet werden.

SUMMARIZE berechnet Gesamtsummen für den ganzen Report neu. Wenn Sie Gesamtsummen unterdrücken möchten, können Sie den NOTOTAL-Befehl in Ihre Anfrage aufnehmen. Siehe Gesamtsummen unterdrücken.


Nach oben

x
Syntax: Zwischensumme für berechneter Werte erzeugen
{BY|ON} fieldname {SUMMARIZE|RECOMPUTE} [MULTILINES]
      [field1 [AND] field2...] [AS 'text'][WHEN expression;]

Hierbei gilt:

fieldname
Muss der Name eines Feldes in einer Sortierphrase sein. Eine BY-Phrase kann einen Summenbefehl enthalten. Das Produkt aus der Anzahl der Felder, deren Summe erstellt werden soll, und der Anzahl der Summenbefehl-Ebenen schließt die für die Anfrage erlaubte Anzahl Anzeigefelder ein. Genauere Informationen über das Bestimmen der maximalen Anzahl für Anzeigefelder, die in einer Anfrage verwendet werden können, siehe Reportdaten anzeigen.
SUMMARIZE
Berechnet Werte an jedem Sortierumbruch neu.
RECOMPUTE
Berechnet Werte nur am angegebenen Sortierumbruch neu.
MULTILINES
Unterdrückt das Drucken einer Zwischensummenzeile für jeden Sortierumbruch, der nur eine Detailzeile besitzt, da der Zwischensummenwert gleich diesem einen Wert ist. Beachten Sie, dass MULTI-LINES ein Synonym für MULTILINES ist. MULTILINES wird mit horizontalen (ACROSS) Sortierfeldern nicht unterstützt.

Sie können Gesamtsummen auch unterdrücken, indem Sie den NOTOTAL-Befehl verwenden, wie es in Gesamtsummen unterdrücken beschrieben ist.

AS 'text'
Ermöglicht es Ihnen, ein anderes Label anzugeben. Weitere Informationen zu diesem Thema finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden.
field1, field2, ...
Zeigt eine Liste bestimmter Felder an, für die nach RECOMPUTE oder SUMMARIZE eine Zwischensumme erstellt werden soll. Diese Liste überschreibt den Default, der alle numerischen Anzeigefelder beinhaltet.

Sie können anstelle einer Feldliste das Platzhalterzeichen Sternchen (*) verwenden, um anzugeben, dass alle Felder (numerische und alphanumerische) in den Summenzeilen enthalten sein sollten. Dies ist erforderlich, wenn Sie alphanumerische Spalten in Summenzeilen anzeigen möchten, wenn SET SUMMARYLINES auf OLD eingestellt ist. Sie können für andere Werte von SUMMARYLINES entweder das Sternchen verwenden, um alle Zeilen anzuzeigen, oder auf die spezifischen Zeilen verweisen, die angezeigt werden sollen.

WHEN-Formel
Bestimmt die bedingte Anzeige von Zwischensummen basierend auf einer booleschen Formel. Sie müssen die Formel mit einem Semikolon beenden.

Sie können für die neu berechneten Werte auch Zwischensummen mit dem ON TABLE-Befehl erzeugen. Verwenden Sie die folgende Syntax:

ON TABLE SUMMARIZE


Beispiel: SUMMARIZE verwenden

Die folgende Anfrage verdeutlicht die Verwendung von SUMMARIZE, um am angegebenen Sortierumbruch (DEPARTMENT) DG_RATIO und für den Sortierumbruch auf höherer Ebene PAY_DATE neu zu berechnen:

TABLE FILE EMPLOYEE
SUM GROSS DED_AMT AND COMPUTE
DG_RATIO/F4.2=DED_AMT/GROSS;
BY HIGHEST PAY_DATE BY DEPARTMENT
BY BANK_ACCT
WHERE BANK_ACCT NE 0
ON DEPARTMENT SUMMARIZE
END

Der erste Teil der Ausgabe ist:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/08/31  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69
                      163800144      $2,255.00        $1,668.69       .74
                                                                         
*TOTAL DEPARTMENT MIS                $5,610.00        $3,655.43       .65
                                                                         
          PRODUCTION     160633      $2,475.00        $1,427.24       .58
                      136500120      $1,342.00          $522.28       .39
                      819000702      $2,238.50        $1,746.03       .78
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $6,055.50        $3,695.55       .61
*TOTAL PAY_DATE 82/08/31            $11,665.50        $7,350.98       .63

Der letzte Teil der Ausgabe ist:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/01/29  PRODUCTION  819000702      $2,035.00        $1,241.33       .61
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $2,035.00        $1,241.33       .61
*TOTAL PAY_DATE 82/01/29             $4,182.75        $2,648.12       .63
                                                                         
81/12/31  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
*TOTAL PAY_DATE 81/12/31             $2,147.75        $1,406.79       .66
                                                                         
81/11/30  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
*TOTAL PAY_DATE 81/11/30             $2,147.75        $1,406.79       .66
                                                                         
                                                                         
TOTAL                               $65,887.25       $41,521.18       .63

Tipp: Wenn Sie SUMMARIZE anstelle von SUB-TOTAL oder SUBTOTAL verwenden, werden die Werte von DG_RATIO hinzugefügt.



Beispiel: RECOMPUTE verwenden

Die folgende Anfrage beschreibt die Verwendung von RECOMPUTE, um DG_RATIO nur am angegebenen Sortierumbruch (DEPARTMENT) neu zu berechnen.

TABLE FILE EMPLOYEE
SUM GROSS DED_AMT AND COMPUTE
DG_RATIO/F4.2=DED_AMT/GROSS;
BY HIGHEST PAY_DATE BY DEPARTMENT
BY BANK_ACCT
WHERE BANK_ACCT NE 0
ON DEPARTMENT RECOMPUTE
END

Der erste Teil der Ausgabe ist:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/08/31  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69
                      163800144      $2,255.00        $1,668.69       .74
                                                                         
*TOTAL DEPARTMENT MIS                $5,610.00        $3,655.43       .65
                                                                         
          PRODUCTION     160633      $2,475.00        $1,427.24       .58
                      136500120      $1,342.00          $522.28       .39
                      819000702      $2,238.50        $1,746.03       .78
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $6,055.50        $3,695.55       .61
                                                                         
82/07/30  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69

Der letzte Teil der Ausgabe ist:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/01/29  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
          PRODUCTION  819000702      $2,035.00        $1,241.33       .61
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $2,035.00        $1,241.33       .61
                                                                         
81/12/31  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
81/11/30  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
                                                                         
TOTAL                               $65,887.25       $41,521.18       .63

WebFOCUS