In diesem Abschnitt: Vorgehensweise: Referenz: |
Sie können für Zeilen oder Spalten mit Zahlen in einem Report Summen berechnen. Verwendung:
Sie können Zeilensummen und Spaltensummen in Matrixreports (werden erstellt, indem Sie in Ihrer Reportanfrage BY und ACROSS verwenden) verwenden, Zeilen- und Spaltensummentitel umbenennen und berechnete Werte in Ihre Zeilen- oder Spaltensummen aufnehmen. Sie können auch Zeilensummen erstellen, indem Sie ACROSS-TOTAL verwenden.
Beachten Sie, dass, wenn Sie in einem Report Summen erzeugen und ein Feld summiert wird, das Format der Zeilensumme dasselbe ist, wie das des Feldes. Wenn beispielsweise das Format des CURR_SAL-Feldes D12.2M ist, ist das Format für die Zeilensumme von CURR_SAL ebenfalls D12.2M. Wenn Sie Felder mit unterschiedlichen Formaten summieren, wird das Default-Format D12.2 für die Summe verwendet.
Sie können die Default-Spaltentitel mit der AS-Phrase umbenennen und die Labels für die Zeilen- und Spaltensummen ausrichten. Weitere Informationen finden Sie unter Kopfzeilen, Fußzeilen, Titel und Labels verwenden.
display_command fieldname AND ROW-TOTAL [alignment][/format] [AS 'name'] display_command fieldname AND COLUMN-TOTAL [alignment][AS 'name']
Hierbei gilt:
/R richtet das Label rechts aus.
/L richtet das Label links aus.
/C zentriert das Label.
Beachten Sie, dass diese Ausrichtungseinstellungen in der HTML-Ausgabe ignoriert werden. Um in WebFOCUS Spaltenausrichtungs-Features zu nutzen, können Sie den Befehl SET STYLE=OFF in die Reportanfrage mit einbeziehen oder Ihre Ausgabe in PDF bzw. in einem anderen Format erzeugen, das diese Funktionen unterstützt.
Sie können Zeilen- oder Spaltensummen auch mit dem ON TABLE-Befehl angeben. Feldnamen sind bei COLUMN-TOTAL optional und können bei ROW-TOTAL nicht aufgelistet werden. Verwenden Sie die folgende Syntax:
ON TABLE COLUMN-TOTAL [alignment][AS 'name'][field field field] ON TABLE ROW-TOTAL [alignment][/format] [AS 'name']
Die folgende Anfrage verdeutlicht die Verwendung von ROW-TOTAL und COLUMN-TOTAL. Die Labels für Spalten- und Zeilensummen sind per Default "TOTAL". Sie können sie mit einer AS-Phrase ändern.
TABLE FILE SALES SUM RETURNS DAMAGED AND ROW-TOTAL AND COLUMN-TOTAL BY PROD_CODE END
Die Ausgabe ist:
PROD_CODE RETURNS DAMAGED TOTAL --------- ------- ------- --------- B10 13 10 23 B12 4 3 7 B17 4 2 6 B20 1 2 3 C13 3 0 3 C17 0 0 0 C7 5 4 9 D12 3 2 5 E1 4 7 11 E2 9 4 13 E3 12 11 23 TOTAL 58 45 103
Die folgende Anfrage verdeutlicht die Verwendung von COLUMN-TOTAL mit dem ON TABLE-Befehl.
TABLE FILE EMPLOYEE PRINT CURR_SAL BY LAST_NAME ON TABLE COLUMN-TOTAL END
Die Ausgabe ist:
LAST_NAME CURR_SAL --------- -------- BANNING $29,700.00 BLACKWOOD $21,780.00 CROSS $27,062.00 GREENSPAN $9,000.00 IRVING $26,862.00 JONES $18,480.00 MCCOY $18,480.00 MCKNIGHT $16,100.00 ROMANS $21,120.00 SMITH $13,200.00 $9,500.00 STEVENS $11,000.00 TOTAL $222,284.00
Die folgende Anfrage verdeutlicht die Verwendung von ROW-TOTAL und COLUMN-TOTAL in einem Matrixreport (wird erstellt, indem BY- und ACROSS-Phrasen zusammen verwendet werden).
TABLE FILE EMPLOYEE SUM CURR_SAL AND ROW-TOTAL AND COLUMN-TOTAL BY BANK_NAME ACROSS DEPARTMENT END
Die Ausgabe ist:
DEPARTMENT BANK_NAME MIS PRODUCTION TOTAL ----------------------------------------------------------------------- $40,680.00 $41,620.00 $82,300.00 ASSOCIATED $21,780.00 $42,962.00 $64,742.00 BANK ASSOCIATION $27,062.00 . $27,062.00 BEST BANK . $29,700.00 $29,700.00 STATE $18,480.00 . $18,480.00 TOTAL $108,002.00 $114,282.00 $222,284.00
Die folgende Anfrage verdeutlicht die Aufnahme des berechneten Wertes PROFIT in Zeilen- und Spaltensummen.
TABLE FILE CAR SUM DCOST RCOST COMPUTE PROFIT/D12=RCOST-DCOST; ROW-TOTAL/L/D12 AS 'TOTAL_COST' BY COUNTRY ON TABLE COLUMN-TOTAL/L AS 'FINAL_TOTAL' END
Die Ausgabe ist:
COUNTRY DEALER_COST RETAIL_COST PROFIT TOTAL_COST ------- ----------- ----------- ------ --------------- ENGLAND 37,853 45,319 7,466 90,638 FRANCE 4,631 5,610 979 11,220 ITALY 41,235 51,065 9,830 102,130 JAPAN 5,512 6,478 966 12,956 W GERMANY 54,563 64,732 10,169 129,464 FINAL_TOTAL 143,794 173,204 29,410 346,408
Wenn eine Anfrage ein ACROSS-Sortierfeld hat, zeigt jeder ACROSS-Wert eine Spalte für jedes in der Reportausgabe angezeigte Feld an. In der folgenden Anfrage hat beispielsweise jeder Staat eine Spalte für Einheiten und eine Spalte für Dollar:
TABLE FILE GGSALES SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY ACROSS ST IF ST EQ 'CA' IF BUDUNITS NE MISSING END
Die Ausgabe ist:
State CA City U D ----------------------------------------- Los Angeles 298070 3772014 San Francisco 312500 3870258
Wenn Sie eine Zeilensumme mit ACROSS angeben, werden die Zeilensummen für alle Spalten in allen ACROSS-Gruppen separat berechnet. In der folgenden Anfrage hat die Zeilensumme beispielsweise eine Spalte für Einheiten und eine Spalte für Dollar:
TABLE FILE GGSALES SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY ACROSS ST IF ST EQ 'CA' IF BUDUNITS NE MISSING ON TABLE ROW-TOTAL END
Die Ausgabe ist:
State CA TOTAL City U D U D ---------------------------------------------------------- Los Angeles 298070 3772014 298070 3772014 San Francisco 312500 3870258 312500 3870258
Wenn die Anfrage auch mehrere Anzeigebefehle hat, fügen alle zusätzlichen Befehle allen ACROSS-Gruppen in der Reportausgabe zusätzliche Spalten hinzu.
Die erste Spalte der Zeilensummengruppe wird berechnet, indem die erste Spalte jedes Anzeigebefehls unter jedem ACROSS-Wert hinzugefügt wird. Die zweite Spalte fügt die zweite Spalte jedes Anzeigebefehls hinzu usw.
Beispielsweise hat die folgende Anfrage einen SUM-Befehl für Einheiten und Dollar und einen weiteren SUM-Befehl für eingeplante Einheiten und eingeplante Dollar. Die Zeilensumme enthält eine Spalte für die Summe der Einheiten und die Summe der eingeplanten Einheiten und eine weitere Spalte für die Summe der Dollar und die Summe der eingeplanten Dollar:
TABLE FILE GGSALES SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY SUM BUDUNITS AS 'BU' BUDDOLLARS AS 'BD' BY CITY ACROSS ST IF ST EQ 'CA' IF BUDUNITS NE MISSING ON TABLE ROW-TOTAL END
Die Ausgabe ist:
State CA TOTAL City U D BU BD BU BD ------------------------------------------------------------------------ Los Angeles 298070 3772014 295637 3669484 593707 7441498 San Francisco 312500 3870258 314725 3916863 627225 7787121
Wenn die unterschiedlichen Anzeigebefehle nicht alle dieselbe Anzahl Felder angeben, sind manche Spalten in der Zeilensumme nicht enthalten. Beispielsweise enthält in der folgenden Anfrage der zweite SUM-Befehl eine Spalte für eingeplante Einheiten, jedoch keine Spalte für eingeplante Dollar. Daher enthält die Zeilensummengruppe keine Spalte für Dollar:
TABLE FILE GGSALES SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY SUM BUDUNITS AS 'BU' BY CITY ACROSS ST IF ST EQ 'CA' IF BUDUNITS NE MISSING ON TABLE ROW-TOTAL END
Die Ausgabe ist:
State CA TOTAL City U D BU BU ------------------------------------------------------------ Los Angeles 298070 3772014 295637 593707 San Francisco 312500 3870258 314725 627225
In diesem Fall können Sie die Spaltennotation verwenden, um die Zeilensumme richtig zu berechnen. Die folgende Anfrage berechnet beispielsweise die Zeilensummenspalte, indem die Spalten Einheiten, Dollar und eingeplante Einheiten addiert werden:
TABLE FILE GGSALES SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY SUM BUDUNITS AS 'BU' BY CITY ACROSS ST COMPUTE TOTAL/I10 = C1 + C2 +C3; AS 'ROW-TOTAL' IF ST EQ 'CA' IF BUDUNITS NE MISSING END
Die Ausgabe ist:
State CA ROW-TOTAL City U D BU --------------------------------------------------------------- Los Angeles 298070 3772014 295637 4365721 San Francisco 312500 3870258 314725 4497483
Vorgehensweise: Referenz: |
Sie können Zeilensummen für horizontale (ACROSS) Sortierfeldwerte erzeugen. Zeilensummen für horizontale Sortierfelder, auf die über ACROSS-TOTAL verwiesen wird, unterscheiden sich von standardmäßigen Zeilensummen, weil nur horizontale Sortierfeldwerte, auf die mit ACROSS verwiesen wird, in der Summe enthalten sind. Es können ganze Zahlen, Einfachpräzision-Gleitkomma, Doppelpräzision-Gleitkomma, gepackte und langgepackte Felder summiert werden.
ACROSS sortfield ACROSS-TOTAL [AS 'name'] [COLUMNS col1 AND col2 ...]
Hierbei gilt:
Im Anschluss wird gezeigt, wie Sie eine Zeilensumme für horizontale (ACROSS) Sortierfeldwerte erzeugen. Beachten Sie, dass die summierten Werte in der TOTAL TITLE COUNT-Spalte nur die Werte in den Spalten (RATING) PG und R widerspiegeln. Die Werte in der Spalte COPIES sind nicht enthalten, da sie keine horizontalen (ACROSS) Sortierfeldwerte sind.
TABLE FILE MOVIES SUM COPIES BY CATEGORY COUNT TITLE BY CATEGORY ACROSS RATING ACROSS-TOTAL COLUMNS PG AND R END
Die Ausgabe ist:
RATING PG R TOTAL TITLE TITLE TITLE CATEGORY COPIES COUNT COUNT COUNT --------------------------------------- ACTION 14 2 3 5 COMEDY 16 4 1 5 DRAMA 2 0 1 1 FOREIGN 5 2 3 5 MUSICALS 2 1 1 2 MYSTERY 17 2 5 7 SCI/FI 3 0 3 3
WebFOCUS |