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.
{BY|ON} fieldname {SUMMARIZE|RECOMPUTE} [MULTILINES] [field1 [AND] field2...] [AS 'text'][WHEN expression;]
Hierbei gilt:
Sie können Gesamtsummen auch unterdrücken, indem Sie den NOTOTAL-Befehl verwenden, wie es in Gesamtsummen unterdrücken beschrieben ist.
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.
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
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.
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 |