Recalcul de valeurs pour les lignes de sous-total

Comment :

Vous pouvez utiliser les commandes SUMMARIZE et RECOMPUTE au lieu de SUB-TOTAL et SUBTOTAL pour recalculer le résultat d'une commande COMPUTE. SUMMARIZE est similiare à SUB-TOTAL dans la mesure où elle recalcule les valeurs à chaque rupture de tri. RECOMPUTE est similaire à SUBTOTAL dans la mesure où elle recalcule des valeurs uniquement à la rupture de tri spécifiée.

SUMMARIZE recalcule des totaux généraux pour le rapport entier. Si vous souhaitez supprimer les totaux généraux, vous pouvez inclure la commande NOTOTAL dans votre requête. Consultez Suppression de totaux généraux.


Haut de page

x
Syntaxe : Calculer le sous-total des valeurs calculées
{BY|ON} fieldname {SUMMARIZE|RECOMPUTE} [MULTILINES]
      [field1 [AND] field2...] [AS 'text'][WHEN expression;]

où :

fieldname
Doit s'agir du nom d'un champ dans une phrase de tri. Une expression BY peut inclure une commande récapitulative. Le nombre de champs à sous-totaliser multiplié par le nombre de niveaux de sous-totaux compte parmi le nombre de champs d'affichage autorisés pour la requête. Pour plus de détails sur la détermination du nombre maximal de champs d'affichage autorisés dans une requête, consultez Affichage de données de rapport.
SUMMARIZE
Recalcule des valeurs à chaque rupture de tri.
RECOMPUTE
Recalcule des valeurs uniquement au niveau de la rupture de tri spécifiée.
MULTILINES
Supprime l'impression d'une ligne de sous-total pour chaque sort break n'ayant qu'une ligne de détail, comme la valeur de sous-total est égale à cette valeur unique. MULTI-LINES est synonyme de MULTILINES. La commande MULTILINES n'est pas supportée avec les champs de tri horizontal (ACROSS).

Vous avez aussi la possibilité de supprimer les totaux généraux en utilisant la commande NOTOTAL, comme le décrit la rubrique Suppression de totaux généraux.

AS 'text'
Vous permet de spécifier un autre label. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes.
field1, field2, ...
Indique une liste de champs particuliers duquel un sous-total est généré après la commande RECOMPUTE ou SUMMARIZE. Cette liste remplace la valeur par défaut, qui comprend tous les champs d'affichage numériques.

Vous pouvez utiliser le caractère générique astérisque (*) au lieu d'une liste de champs pour indiquer que tous les champs, numériques et alphanumériques, devraient être inclus sur les lignes récapitulatives. Ceci est nécessaire si vous voulez afficher des colonnes alphanumériques sur des lignes récapitulatives lorsque SET SUMMARYLINES est défini à OLD. Pour les autres valeurs de SUMMARYLINES, vous pouvez utiliser l'astérisque pour afficher toutes les colonnes ou référencer les colonnes spécifiques que vous souhaitez afficher.

WHEN expression
Indique l'affichage conditionnelle des sous-totaux basée sur une expression booléenne. L'expression doit terminer par un point virgule.

Il vous êtes aussi possible de générer des sous-totaux pour les valeurs recalculées en utilisant la commande ON TABLE. Utilisez la syntaxe suivante :

ON TABLE SUMMARIZE


Exemple : Utilisation de la commande SUMMARIZE

La requête suivante illustre l'utilisation de la commande SUMMARIZE pour recalculer DG_RATIO à la rupture de tri spécifiée, DEPARTMENT, ainsi que pour la rupture de tri de niveau supérieur, PAY_DATE :

TABLE FILE EMPLOYEE
SUM GROSS DED_AMT AND COMPUTE
DG_RATIO/F4.2=DED_AMT/GROSS;
BY HIGHEST PAY_DATE BY DEPARTMENT
BY BANK_ACCT
WHERE BANK_ACCT NE 0
ON DEPARTMENT SUMMARIZE
END

La première partie de la sortie est :

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/08/31  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69
                      163800144      $2,255.00        $1,668.69       .74
                                                                         
*TOTAL DEPARTMENT MIS                $5,610.00        $3,655.43       .65
                                                                         
          PRODUCTION     160633      $2,475.00        $1,427.24       .58
                      136500120      $1,342.00          $522.28       .39
                      819000702      $2,238.50        $1,746.03       .78
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $6,055.50        $3,695.55       .61
*TOTAL PAY_DATE 82/08/31            $11,665.50        $7,350.98       .63

La dernière page de sortie est:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/01/29  PRODUCTION  819000702      $2,035.00        $1,241.33       .61
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $2,035.00        $1,241.33       .61
*TOTAL PAY_DATE 82/01/29             $4,182.75        $2,648.12       .63
                                                                         
81/12/31  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
*TOTAL PAY_DATE 81/12/31             $2,147.75        $1,406.79       .66
                                                                         
81/11/30  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
*TOTAL PAY_DATE 81/11/30             $2,147.75        $1,406.79       .66
                                                                         
                                                                         
TOTAL                               $65,887.25       $41,521.18       .63

Conseil : si vous utilisez les commandes SUB-TOTAL ou SUBTOTAL au lieu de SUMMARIZE, les valeurs de DG_RATIO sont ajoutées.



Exemple : Utilisation de la commande RECOMPUTE

La requête suivante illustre l'utilisation de la commande RECOMPUTE pour recalculer DG_RATIO uniquement à la rupture de tri spécifiée, DEPARTMENT.

TABLE FILE EMPLOYEE
SUM GROSS DED_AMT AND COMPUTE
DG_RATIO/F4.2=DED_AMT/GROSS;
BY HIGHEST PAY_DATE BY DEPARTMENT
BY BANK_ACCT
WHERE BANK_ACCT NE 0
ON DEPARTMENT RECOMPUTE
END

La première partie de la sortie est :

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/08/31  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69
                      163800144      $2,255.00        $1,668.69       .74
                                                                         
*TOTAL DEPARTMENT MIS                $5,610.00        $3,655.43       .65
                                                                         
          PRODUCTION     160633      $2,475.00        $1,427.24       .58
                      136500120      $1,342.00          $522.28       .39
                      819000702      $2,238.50        $1,746.03       .78
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $6,055.50        $3,695.55       .61
                                                                         
82/07/30  MIS          40950036      $1,540.00          $725.34       .47
                      122850108      $1,815.00        $1,261.40       .69

La dernière page de sortie est:

PAY_DATE  DEPARTMENT  BANK_ACCT          GROSS          DED_AMT  DG_RATIO
--------  ----------  ---------          -----          -------  --------
82/01/29  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
          PRODUCTION  819000702      $2,035.00        $1,241.33       .61
                                                                         
*TOTAL DEPARTMENT PRODUCTION         $2,035.00        $1,241.33       .61
                                                                         
81/12/31  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
81/11/30  MIS         163800144      $2,147.75        $1,406.79       .66
                                                                         
*TOTAL DEPARTMENT MIS                $2,147.75        $1,406.79       .66
                                                                         
                                                                         
TOTAL                               $65,887.25       $41,521.18       .63

WebFOCUS