Summenspalten für horizontale Sortierfelder erzeugen

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


Nach oben

x
Syntax: Eine Summenoperation in einem horizontalen Sortierfeld erzeugen
{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:

acrossfield
Ist das ACROSS-Feld, für das Sie die Summenoption erzeugen möchten. Das Ende der Werte für das ACROSS-Feld löst die Summenoperation aus.
sumoption
Ist einer der Folgenden Befehle: SUBTOTAL, SUB-TOTAL, RECOMPUTE oder SUMMARIZE.
'text1'
Ist die Spaltenkopfzeile, die für das Umbruchfeld in der Reportausgabe verwendet werden soll.
'text2'
Ist der Text, der über der Summenzeile gedruckt wird.
COLUMNS c1, c2 ...
Listet die spezifischen ACROSS-Werte, die Sie in der Reportausgabe anzeigen möchten, in der gewünschten Reihenfolge auf. Diese Werteliste kann in einer ON-Phrase nicht angegeben werden. Wenn Sie in einer ACROSS-Phrase angegeben wird, muss sie die letzte Option sein.
field1 field2 ... fieldn

Sind die Felder, auf die der Summenbefehl angewendet wird. Wenn keine Felder aufgelistet sind, werden alle Felder summiert.


Nach oben

x
Referenz: Verwendungshinweise für Summen in ACROSS-Feldern


Beispiel: Summenbefehle mit ACROSS verwenden

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:



Beispiel: Eine Zwischensumme für ein Feld in einer ACROSS-Gruppe berechnen

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     


Beispiel: Einen berechneten Wert in einer ACROSS-Gruppe summieren

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                                   


Beispiel: Präfixoperatoren in einem Summenbefehl mit ACROSS verwenden

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                             


Beispiel: Kombinationen von ACROSS-Summenbefehlen verwenden

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