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.
{BY|ON} fieldname {SUMMARIZE|RECOMPUTE} [MULTILINES] [field1 [AND] field2...] [AS 'text'][WHEN expression;]
où :
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.
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.
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
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.
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 |