Referenz: |
Sie können für jeden Sortierumbruch (BY- oder ACROSS-Feld) eine andere Summenoperation angeben.
Wenn mehrere Summenbefehle für dasselbe BY-Feld vorhanden sind, wird die folgende Meldung angezeigt und der zuletzt in der Anfrage angegebene Summenbefehl verwendet:
(FOC36359) MORE THAN 1 SUBTOTAL/SUB-TOTAL/RECOMPUTE/SUMMARIZE
SUMMARIZE und SUB-TOTAL, die ihre Summenbefehle an Sortierumbrüche auf höheren Ebene weitergeben, überspringen Felder an Sortierumbrüchen höherer Ebenen, die eigene Summenbefehle haben. Die Weitergabe von Summenoperationen hängt davon ab, ob Präfixoperatorverarbeitung für Summenzeilen verwendet wird. Wenn Präfixoperatoren...
Präfixoperatoren in Summenzeilen ergeben dieselben Werte, unabhängig davon, ob der RECOMPUTE/SUMMARIZE- oder der SUBTOTAL/SUB-TOTAL-Befehl verwendet wird. Für ein berechnetes Feld wird der Präfixoperator nicht verwendet. Der Wert wird mit der Formel im COMPUTE-Befehl und den Werten in der Summenzeile neu berechnet.
Wenn Sie für verschiedene Sortierfelder verschiedene Summenbefehle verwenden, übernimmt die Default-Gesamtsummenzeile den Summenbefehl, der mit dem ersten Sortierfeld in der Anfrage assoziiert ist. Sie können die Operation ändern, die auf der Ebene der Gesamtsumme ausgeführt wird, indem Sie die ON TABLE-Phrase verwenden, um einen bestimmten Summenbefehl anzugeben.
Hinweis: Die Gesamtsumme wird als höchste Sortierebene betrachtet. Daher gelten diese Befehle, obwohl Sie den SUMMARIZE- oder SUB-TOTAL-Befehl auf der Gesamtsummenebene verwenden können, nur für die Gesamtsumme und werden an keine andere Zeile im Report weitergegeben. Auf der Gesamtsummenebene agiert SUMMARIZE als ein RECOMPUTE-Befehl und SUB-TOTAL als ein SUBTOTAL-Befehl.
In der folgenden Anfrage ist das erste angegebene Sortierfeld COPIES, das mit dem RECOMPUTE-Befehl assoziiert wird. Daher wird in der Gesamtsummenzeile der Wert für RATIO richtig neu berechnet und die Werte für LISTPR und WHOLESALEPR werden summiert (da dies die Default-Operation ist, wenn das Feld nicht von einem COMPUTE-Befehl berechnet wird).
TABLE FILE MOVIES PRINT DIRECTOR LISTPR WHOLESALEPR COMPUTE RATIO = LISTPR/WHOLESALEPR; BY COPIES BY RATING WHERE COPIES LT 3 WHERE DIRECTOR EQ 'DISNEY W.' OR 'HITCHCOCK A.' ON COPIES RECOMPUTE AS '*REC: ' ON RATING SUBTOTAL AS '*SUB: ' END
Die Ausgabe ist:
COPIES RATING DIRECTOR LISTPR WHOLESALEPR RATIO ------ ------ -------- ------ ----------- ----- 1 NR DISNEY W. 29.95 15.99 1.87 *SUB: NR 29.95 15.99 1.87 *REC: 1 29.95 15.99 1.87 2 NR HITCHCOCK A. 19.98 9.00 2.22 *SUB: NR 19.98 9.00 2.22 PG HITCHCOCK A. 19.98 9.00 2.22 HITCHCOCK A. 19.98 9.00 2.22 *SUB: PG 39.96 18.00 4.44 2 PG13 HITCHCOCK A. 19.98 9.00 2.22 *SUB: PG13 19.98 9.00 2.22 R HITCHCOCK A. 19.98 9.00 2.22 *SUB: R 19.98 9.00 2.22 *REC: 2 99.90 45.00 2.22 TOTAL 129.85 60.99 2.13
Wenn Sie die BY-Felder vertauschen, summiert die Gesamtsummenzeile sowohl die RATIO-Werte als auch die LISTPR- und WHOLESALEPR-Werte, da der SUBTOTAL-Befehl die Gesamtsummenzeile steuert:
TOTAL 129.85 60.99 12.97
Sie können die Operation ändern, die auf der Gesamtsummenebene ausgeführt wird, indem Sie der Anfrage den folgenden Befehl hinzufügen:
ON TABLE RECOMPUTE
Die Gesamtsummenzeile zeigt dann die neuberechneten Werte an:
TOTAL 129.85 60.99 2.13
In der folgenden Anfrage dehnt der SUB-TOTAL-Befehl seine Funktion auf das DIRECTOR-Sortierfeld aus (dies können Sie in der Gesamtsummenzeile für HITCHCOCK sehen, in der die RATIO-Werte zwischensummiert aber nicht neu berechnet werden).
SUB-TOTAL wird nicht an das RATING-Sortierfeld weitergegeben, das einen eigenen RECOMPUTE-Befehl hat und für dieses Sortierfeld wird der RATIO-Wert neuberechnet. Die Gesamtsummenzeile wird erneut berechnet, da RECOMPUTE in einem Sortierfeld einer höheren Ebene als SUB-TOTAL durchgeführt wird.
TABLE FILE MOVIES PRINT LISTPR WHOLESALEPR COMPUTE RATIO = LISTPR/WHOLESALEPR; BY DIRECTOR BY RATING BY COPIES WHERE COPIES LT 3 WHERE DIRECTOR EQ 'HITCHCOCK A.' ON COPIES SUB-TOTAL AS '*SUB: ' ON RATING RECOMPUTE AS '*REC: ' END
Die Ausgabe ist:
DIRECTOR RATING COPIES LISTPR WHOLESALEPR RATIO -------- ------ ------ ------ ----------- ----- HITCHCOCK A. NR 2 19.98 9.00 2.22 *SUB: 2 19.98 9.00 2.22 *REC: NR 19.98 9.00 2.22 PG 2 19.98 9.00 2.22 19.98 9.00 2.22 *SUB: 2 39.96 18.00 4.44 *REC: PG 39.96 18.00 2.22 PG13 2 19.98 9.00 2.22 *SUB: 2 19.98 9.00 2.2 *REC: PG13 19.98 9.00 2.2 HITCHCOCK A. R 2 19.98 9.00 2.2 *SUB: 2 19.98 9.00 2.2 *REC: R 19.98 9.00 2.2 *TOTAL DIRECTOR HITCHCOCK A. 99.90 45.00 11.1 TOTAL 99.90 45.00 2.2
Die folgende Anfrage zeigt den durchschnittlichen Wert von LISTPR und den neu berechneten Wert von RATIO in den Zeilen an, die mit dem Sortierfeld RATING assoziiert sind. Der SUB-TOTAL-Befehl, der mit dem Sortierfeld COPIES assoziiert ist, wird an alle Felder in den DIRECTOR-Sortierfeldzeilen weitergegeben und an die WHOLESALEPR- und RATIO1-Spalten, die mit dem RATING-Sortierfeld assoziiert sind. Die Gesamtsummenzeile wird in dieser Anfrage unterdrückt.
TABLE FILE MOVIES PRINT LISTPR WHOLESALEPR COMPUTE RATIO/D6.2 = LISTPR/WHOLESALEPR; COMPUTE RATIO1/D6.2 = LISTPR/WHOLESALEPR; BY DIRECTOR BY RATING BY COPIES WHERE COPIES LT 3 WHERE DIRECTOR EQ 'KAZAN E.' ON RATING RECOMPUTE AVE. LISTPR RATIO AS '*REC: ' ON COPIES SUB-TOTAL AS '*SUB: ' ON TABLE NOTOTAL END
In der Ausgabe:
Die Ausgabe ist:
DIRECTOR RATING COPIES LISTPR WHOLESALEPR RATIO RATIO1 -------- ------ ------ ------ ----------- ----- ------ KAZAN E. NR 1 24.98 14.99 1.67 1.67 *SUB: 1 24.98 14.99 1.67 1.67 2 19.95 9.99 2.00 2.00 *SUB: 2 19.95 9.99 2.00 2.00 *REC: NR 22.46 24.98 .90 3.66 *TOTAL DIRECTOR KAZAN E. 44.93 24.98 3.66 3.66
In der folgenden Anfrage hat der RECOMPUTE-Befehl eine Feldliste.
SET SUMMARYLINES = OLD TABLE FILE MOVIES PRINT LISTPR WHOLESALEPR COMPUTE RATIO/D6.2 = LISTPR/WHOLESALEPR; COMPUTE RATIO1/D6.2 = LISTPR/WHOLESALEPR; BY DIRECTOR BY RATING BY COPIES WHERE COPIES LT 3 WHERE DIRECTOR EQ 'KAZAN E.' ON RATING RECOMPUTE LISTPR RATIO AS '*REC: ' ON COPIES SUB-TOTAL AS '*SUB: ' END
Mit SUMMARYLINES=OLD haben in der Reportausgabe nur diese Felder Werte:
DIRECTOR RATING COPIES LISTPR WHOLESALEPR RATIO RATIO1 -------- ------ ------ ------ ----------- ----- ------ KAZAN E. NR 1 24.98 14.99 1.67 1.67 *SUB: 1 24.98 1.67 2 19.95 9.99 2.00 2.00 *SUB: 2 19.95 2.00 *REC: NR 44.93 1.80 *TOTAL DIRECTOR KAZAN E. 44.93 3.66 TOTAL 44.93 1.80
Mit SUMMARYLINES=NEW wird SUB-TOTAL an alle Spalten weitergegeben, die sonst leer bleiben würden. Die Gesamtsummenzeile übernimmt den RECOMPUTE-Befehl für die Felder, die in seiner Feldliste aufgelistet sind, und der SUB-TOTAL-Befehl gibt Werte an die anderen Spalten weiter:
DIRECTOR RATING COPIES LISTPR WHOLESALEPR RATIO RATIO1 -------- ------ ------ ------ ----------- ----- ------ KAZAN E. NR 1 24.98 14.99 1.67 1.67 *SUB: 1 24.98 14.99 1.67 1.67 2 19.95 9.99 2.00 2.00 *SUB: 2 19.95 9.99 2.00 2.00 *REC: NR 44.93 24.98 1.80 3.66 *TOTAL DIRECTOR KAZAN E. 44.93 24.98 3.66 3.66 TOTAL 44.93 24.98 1.80 3.66
(FOC36376) CANNOT COMBINE SUBTOTAL/RECOMPUTE STYLES WHENSUMMARYLINES=OLD
Sie können diese Meldung vermeiden, indem Sie SUMMARYLINES=NEW einstellen, um Präfixoperatorverarbeitung aufzurufen.
WebFOCUS |