Vorgehensweise: Referenz: |
Es können mit horizontalen Sortierumbrüchen die Summenbefehle SUBTOTAL, SUB-TOTAL, SUMMARIZE und RECOMPUTE verwendet werden.
Wenn eine Anfrage mehrere Anzeigefelder und ein ACROSS-Sortierfeld hat, hat die Reportausgabe mehrere Spalten unter jedem ACROSS-Wert. Wenn Sie ein Summenfeld auf manche der Spalten für jeden ACROSS-Wert anwenden möchten, aber nicht auf andere, können Sie die Feldnamen angeben, die Sie summieren möchten. Diese Methode ist sehr hilfreich für Reportanfragen, die die OVER-Phrase verwenden, um die Felder in separate Zeilen zu platzieren
{ACROSS|ON} acrossfield [AS 'text1'] sumoption [AS 'text2'] [COLUMNS c1 [AND c2 ...]]
oder
ACROSS acrossfieldsumoption [field1field2 ... fieldn]
oder
ACROSS acrossfield
ON acrossfieldsumoption [field1field2 ... fieldn]
Hierbei gilt:
Sind die Felder, auf die der Summenbefehl angewendet wird. Wenn keine Felder aufgelistet sind, werden alle Felder summiert.
In der folgenden Anfrage werden Stückzahlen und Dollar summiert und die Stückkosten nach Produkt, Region und Monat berechnet. Der ACROSS MNTH RECOMPUTE-Befehl erstellt Summen für Stückzahlen und Dollar und berechnet die berechneten Werte für die ausgewählten Monate in den Regionen neu. Der ACROSS REGION RECOMPUTE-Befehl tut dasselbe für die ausgewählten Regionen. Der ON TABLE SUMMARIZE-Befehl erstellt Summenzeilen. Dies wirkt sich nicht auf Spalten aus:
DEFINE FILE GGSALES MNTH/MTr = DATE; END TABLE FILE GGSALES SUM UNITS/I5 AS 'UNITS' OVER DOLLARS/I6 AS 'DOLLARS' OVER COMPUTE DOLLPER/I6 = DOLLARS/UNITS; AS 'UNIT COST' BY PRODUCT ACROSS REGION RECOMPUTE AS 'Region Sum' COLUMNS 'Northeast' AND 'West' ACROSS MNTH RECOMPUTE AS 'Month Sum' COLUMNS 'November' AND 'December' WHERE DATE FROM '19971101' TO '19971231'; WHERE PRODUCT EQ 'Capuccino' OR 'Espresso'; ON TABLE SUMMARIZE AS 'Grand Total'END
Die Ausgabe ist:
Die folgende Anfrage mit der Datenquelle GGSALES summiert die Felder DOLLARS und UNITS nach CATEGORY und across REGION, aber berechnet nur die Zwischensumme des Feldes UNITS.
TABLE FILE GGSALES SUM DOLLARS AS 'Dollars' OVER UNITS AS 'Units' BY CATEGORY ACROSS REGION SUBTOTAL UNITS WHERE REGION EQ 'Midwest' OR 'West' ON TABLE SET PAGE NOPAGE END
In der Ausgabe ist zu sehen, dass nur für die Zeilen mit den UNITS-Werten eine Zwischensumme berechnet wird.
Region Midwest West TOTAL Category ------------------------------------------------------------- Coffee Dollars 4178513 4473517 Units 332777 356763 689540 Food Dollars 4338271 4202337 Units 341414 340234 681648 Gifts Dollars 2883881 2977092 Units 230854 235042 465896
Die folgende Anfrage mit der Datenquelle GGSALES summiert die Felder DOLLARS und UNITS und berechnet DOLLARS PER UNIT across REGION. Die Anfrage enthält auch ein übergeordnetes ACROSS-Feld (CATEGORY), so dass der Befehl SUMMARIZE an beide ACROSS-Felder weitergibt.
SET BYPANEL = ON
TABLE FILE GGSALES
SUM DOLLARS AS 'Dollars' UNITS AS 'Units'
AND COMPUTE DPERU/D9.2 = DOLLARS/UNITS;
ACROSS CATEGORY
ACROSS REGION
ON REGION SUMMARIZE DPERU
WHERE REGION EQ 'Midwest' OR 'West'
WHERE CATEGORY EQ 'Food' OR 'Gifts'
ON TABLE PCHOLD FORMAT PDF
END
Das erste Ausgabepanel zeigt:
PAGE 1.1 Category Food Gifts Region Midwest West TOTAL Midwest West ------------------------------------------------------------------------- Dollars 4338271 4202337 2883881 2977092 Units 341414 340234 230854 235042 DPERU 12.71 12.35 12.53 12.49 12.67
Das zweite Panel enthält die Summenspalte für die Kategorie Geschenke und die Gesamtsummenspalte. Beide haben nur einen Wert in der Zeile DPERU.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars Units DPERU 12.58 12.55
Die folgende Anfrage mit der Datenquelle GGSALES summiert die Felder DOLLARS und UNITS "ACROSS CATEGORY" und "ACROSS REGION" mit einem SUMMARIZE-Befehl im Feld REGION. Die Anfrage enthält auch ein übergeordnetes ACROSS-Feld (CATEGORY), so dass der Befehl SUMMARIZE an beide ACROSS-Felder weitergibt. Der Befehl SUMMARIZE gibt den AVE.- Präfixoperator für das Feld DOLLARS an.
SET BYPANEL = ON
TABLE FILE GGSALES
SUM DOLLARS AS 'Dollars' OVER
UNITS AS 'Units'
ACROSS CATEGORY
ACROSS REGION
ON REGION SUMMARIZE AVE. DOLLARS
WHERE REGION EQ 'Midwest' OR 'West'
WHERE CATEGORY EQ 'Food' OR 'Gifts'
ON TABLE PCHOLD FORMAT PDF
END
Das erste Ausgabepanel zeigt:
PAGE 1.1 Category Food Gifts Region Midwest West TOTAL Midwest West ------------------------------------------------------------------------- Dollars 4338271 4202337 4270304 2883881 2977092 Units 341414 340234 230854 235042
Das zweite Panel enthält die Summenspalte für die Kategorie Geschenke und die Gesamtsummenspalte. Beide haben nur einen Wert in der Zeile DOLLARS.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars 2930486 3600395 Units
Die folgende Anfrage mit der Datenquelle GGSALES summiert die Felder DOLLARS und UNITS "ACROSS CATEGORY" und "ACROSS REGION" mit einem SUMMARIZE-Befehl im Feld REGION und einem SUBTOTAL-Befehl im Feld CATEGORY. Der Befehl SUMMARIZE gibt durchschnittliche DOLLARS und minimale UNITS an. Der Befehl SUBTOTAL gibt minimale DOLLARS an.
SET BYPANEL = ON TABLE FILE GGSALES SUM DOLLARS AS 'Dollars' OVER UNITS AS 'Units' ACROSS CATEGORY ACROSS REGION ON CATEGORY SUBTOTAL MIN.DOLLARS ON REGION SUMMARIZE AVE.DOLLARS MIN.UNITS WHERE REGION EQ 'Midwest' OR 'West' WHERE CATEGORY EQ 'Food' OR 'Gifts' END
In der Ausgabe haben alle TOTAL-Spalten die minimalen UNITS. Die TOTAL-Spalten, die mit dem REGION-Sortierfeld assoziiert sind, haben die durchschnittlichen DOLLARS, aber die TOTAL-Spalte, die mit dem Sortierfeld CATEGORY assoziiert ist, hat die minimalen DOLLARS, da SUMMARIZE nicht den Präfixoperator ändert, der mit einem übergeordneten Sortierfeld assoziiert ist.
PAGE 1.1 Category Food Gifts Region Midwest West TOTAL Midwest West ------------------------------------------------------------------------- Dollars 4338271 4202337 4270304 2883881 2977092 Units 341414 340234 340234 230854 235042
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars 2930486 2883881 Units 230854 230854
WebFOCUS |