Zeilen- und Spaltensummen berechnen

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.


Nach oben

x
Syntax: Zeilen- und Spaltensummen berechnen
display_command fieldname AND ROW-TOTAL [alignment][/format] [AS 'name'] 
display_command fieldname AND COLUMN-TOTAL [alignment][AS 'name']

Hierbei gilt:

display_command
Ist einer der folgenden Befehle: PRINT, LIST, SUM oder COUNT.
fieldname
Ist der Name des Feldes, für das Zeilen- und/oder Spaltensummen berechnet werden sollen.
Ausrichtung
Gibt die Ausrichtung des ROW-TOTAL- oder des COLUMN-TOTAL-Labels an. Dies sind mögliche Einstellungen:

/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.

Format
Formatiert ROW-TOTAL neu.
name
Ist das Label für ROW-TOTAL oder COLUMN-TOTAL.

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']


Beispiel: Zeilen- und Spaltensummen berechnen

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


Beispiel: Spaltensummen mit ON TABLE angeben

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


Beispiel: Zeilen- und Spaltensummen in einem Matrixreport verwenden

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


Beispiel: Berechnete Werte in Zeilen- und Spaltensummen aufnehmen

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

Nach oben

x
Referenz: ROW-TOTAL mit ACROSS und mehreren Anzeigebefehlen verwenden

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

Nach oben

x
Zeilensummen für horizontale (ACROSS) Sortierfeldwerte erzeugen

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.



x
Syntax: Zeilensummen für horizontale (ACROSS) Sortierfeldwerte erzeugen
ACROSS sortfield ACROSS-TOTAL [AS 'name'] [COLUMNS col1 AND col2 ...]

Hierbei gilt:

sortfield
Ist der Name des Feldes, das horizontal sortiert wird.
name
Ist der neue Name für den ACROSS-TOTAL-Spaltentitel.
col1, col2
Sind die Titel der ACROSS-Spalten, die in der Summe enthalten sein sollen.


Beispiel: Zeilensummen für horizontale (ACROSS) Sortierfeldwerte erzeugen

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


x
Referenz: Verwendungshinweise für ACROSS-TOTAL

WebFOCUS