Calcul de totaux de rangée et de colonne

Dans cette section :

Comment :

Référence :

Vous pouvez produire des totaux pour des lignes ou des colonnes de numéros dans un rapport. Utiliser:

Vous pouvez utiliser des totaux de ligne et de colonne dans les rapports matrice (ce qui sont créés en utilisant une phrase BY et une phrase ACROSS dans votre requête de rapport), renommer des titres de total de ligne ou de colonne et inclure des valeurs calculées dans vos totaux de ligne ou de colonne. Vous pouvez également créer des totaux de ligne en utilisant ACROSS-TOTAL.

Notez que lors de la création de totaux dans un rapport, si un champ est totalisé, le format du total de ligne est le même que le format du champ. Par exemple, si le format du champ CURR_SAL est D12.2M, le format du total de ligne du champ CURR_SAL est aussi D12.2M. En totalisant des champs qui ne sont pas au même format, le format par défaut D12.2 est utilisé pour le total.

Vous pouvez renommer les titres de colonne par défaut en utilisant la phrase AS et aligner les étiquettes des totaux de ligne et de colonne. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes.


Haut de page

x
Syntaxe : Calculer les totaux d'une ligne et d'une colonne
display_command fieldname AND ROW-TOTAL [alignment][/format] [AS 'name'] 
display_command fieldname AND COLUMN-TOTAL [alignment][AS 'name']

où :

display_command
est l'une des commandes suivantes : PRINT, LIST, SUM ou COUNT.
fieldname
est le nom du champ pour lequel calculer les totaux de ligne et/ou de colonne.
alignment
spécifie l'alignement de l'étiquette ROW-TOTAL ou COLUMN-TOTAL. Les valeurs possibles sont :

/R, qui justifie à droite l'étiquette.

/L, qui justifie à gauche l'étiquette.

/C, qui centre l'étiquette.

Notez que ces paramètres d'alignement sont ignorés dans la sortie HTML. Si vous travaillez dans WebFOCUS, pour pouvoir profiter des fonctionnalités d'alignement de colonnes, vous pouvez inclure la commande SET STYLE=OFF dans la requête de rapport ou générer votre sortie au format PDF, ou tout autre format qui prend en charge ces fonctionnalités.

format
reformate le total de ligne (ROW-TOTAL).
name
est l'étiquette du total de ligne (ROW-TOTAL) ou du total de colonne (COLUMN-TOTAL).

Vous pouvez aussi spécifier les totaux de ligne ou de colonne en utilisant la commande ON TABLE. Les noms de champ sont facultatifs avec COLUMN-TOTAL, et ne peuvent pas être listés avec ROW-TOTAL. Utilisez la syntaxe suivante :

ON TABLE COLUMN-TOTAL [alignment][AS 'name'][field field field] 
ON TABLE ROW-TOTAL [alignment][/format] [AS 'name']


Exemple : Calcul de totaux de rangée et de colonne

La requête suivante illustre l'utilisation des commandes ROW-TOTAL et COLUMN-TOTAL. Les étiquettes de total de ligne et de colonne sont « TOTAL » par défaut. Vous pouvez changer ces noms avec une phrase AS.

TABLE FILE SALES
SUM RETURNS DAMAGED AND ROW-TOTAL AND COLUMN-TOTAL
BY PROD_CODE
END

La sortie est :

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


Exemple : Spécification de totaux de colonne avec ON TABLE

La requête suivante illustre l'utilisation de COLUMN-TOTAL avec la commande ON TABLE.

TABLE FILE EMPLOYEE
PRINT CURR_SAL
BY LAST_NAME
ON TABLE COLUMN-TOTAL
END

La sortie est :

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


Exemple : Utilisation de totaux de ligne et de colonne dans un rapport matrice

La requête suivante illustre l'utilisation de ROW-TOTAL et COLUMN-TOTAL dans un rapport matrice (ce qui est créé en utilisant les phrases BY et ACROSS conjointement).

TABLE FILE EMPLOYEE
SUM CURR_SAL AND ROW-TOTAL AND COLUMN-TOTAL
BY BANK_NAME
ACROSS DEPARTMENT
END

La sortie est :

                           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


Exemple : Inclusion de valeurs calculées dans les totaux de ligne et de colonne

La requête suivante illustre l'inclusion de la valeur calculée, PROFIT, dans des totaux de ligne et de colonne.

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

La sortie est :

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

Haut de page

x
Référence : Utilisation de ROW-TOTAL avec ACROSS et des commandes d'affichage multiple

Lorsqu'une requête contient un critère de tri ACROSS, chaque valeur ACROSS affiche une colonne pour chaque champ affiché dans la sortie de rapport. Par exemple, dans la requête suivante, chaque état a une colonne pour les unités et une colonne pour les dollars :

TABLE FILE GGSALES                               
SUM UNITS AS 'U' DOLLARS AS 'D' BY CITY          
ACROSS ST                                      
IF ST EQ 'CA'                                  
IF BUDUNITS NE MISSING                           
END

La sortie est :

                       State              
                       CA                 
City                         U        D  
-----------------------------------------
Los Angeles             298070  3772014  
San Francisco           312500  3870258

Lorsque vous spécifiez un total de lignes avec ACROSS, le total de lignes est calculé séparément pour chaque colonne dans chaque groupe ACROSS. Par exemple, dans la requête suivante le total de ligne a une colonne pour les unités et une colonne pour les dollars :

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

La sortie est :

                       State                               
                       CA                          TOTAL            
 City                         U        D         U        D
 ----------------------------------------------------------
 Los Angeles             298070  3772014    298070  3772014
 San Francisco           312500  3870258    312500  3870258

Lorsque la requête dispose de plusieurs commandes d'affichage, chaque commande supplémentaire ajoute des colonnes supplémentaires à chaque groupe ACROSS dans la sortie de rapport.

La première colonne du groupe de total de lignes est calculée en ajoutant la première colonne de chaque commande d'affichage dans chaque valeur ACROSS, la seconde colonne ajoute la seconde colonne de chaque commande d'affichage, et ainsi de suite.

Par exemple, la requête suivante contient une commande SUM pour les unités et les dollars et une autre commande SUM pour les unités budgétées et les dollars budgétés. Le total de rangée a une colonne pour la somme des unités et des unités budgétées et une autre colonne pour la somme des dollars et des dollars budgétés :

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

La sortie est :

                   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

Si les différentes commandes d'affichage ne spécifient pas toutes le même nombre de champs, certaines colonnes ne sont pas représentées dans le total de lignes. Par exemple, dans la requête suivante, la seconde commande SUM a une colonne pour les unités budgétées mais pas pour les dollars budgétés. Pour cette raison, le groupe de total de lignes n'a donc aucune colonne pour les dollars :

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

La sortie est :

                        State             
                        CA                             TOTAL   
City                         U         D        BU        BU
------------------------------------------------------------
Los Angeles             298070   3772014    295637    593707
San Francisco           312500   3870258    314725    627225

Dans ce cas, vous pouvez utiliser la notation de colonne pour calculer correctement le total de lignes. Par exemple, la requête suivante calcule la colonne de total de ligne en ajoutant les unités, dollars et les colonnes des unités budgétées :

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

La sortie est :

                        State                
                        CA                            ROW-TOTAL
City                         U         D        BU             
---------------------------------------------------------------
Los Angeles             298070   3772014    295637      4365721
San Francisco           312500   3870258    314725      4497483

Haut de page

x
Création de totaux pour les valeurs de critère de tri horizontal (ACROSS)

Comment :

Référence :

Vous pouvez créer des totaux de ligne pour les valeurs de critère de tri horizontal (ACROSS). Les totaux de ligne des critères de tri horizontal, qui sont identifiés par ACROSS-TOTAL, sont différents des totaux de ligne standards dans la mesure où seules les valeurs des critères de tri horizontal, identifiées par ACROSS, sont comprises dans le total. Les champs pouvant être totalisés sont les champs de nombre entier, de précision unique de point flottant, de précision double de point flottant, condensés et condensés longs.



x
Syntaxe : Créer des totaux de ligne pour les valeurs de critère de tri horizontal (ACROSS)
ACROSS sortfield ACROSS-TOTAL [AS 'name'] [COLUMNS col1 AND col2 ...]

où :

sortfield
est le nom du champ qui est trié horizontalement.
name
est le nouveau nom du titre de colonne ACROSS-TOTAL.
col1, col2
sont les titres des colonnes ACROSS que vous souhaitez inclure dans le total.


Exemple : Création de totaux pour les valeurs de critère de tri horizontal (ACROSS)

L'exemple suivant illustre comment générer un total de ligne pour les valeurs de critère de tri horizontal (ACROSS). Notez que les valeurs totalisées dans la colonne TOTAL TITLE COUNT ne reflètent que les valeurs dans les colonnes PG et R (RATING). Les valeurs dans la colonne COPIES ne sont pas comprises dans le total parce qu'elles ne sont pas des valeurs de critère de tri horizontal (ACROSS).

TABLE FILE MOVIES
SUM COPIES BY CATEGORY
COUNT TITLE BY CATEGORY
ACROSS RATING ACROSS-TOTAL
COLUMNS PG AND R
END

La sortie est :

                  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
Référence : Notes sur ACROSS-TOTAL

WebFOCUS