Comment : Référence : |
Vous pouvez utiliser les commandes SUBTOTAL et SUB-TOTAL pour additionner des valeurs individuelles, telles que des colonnes de nombres, chaque fois qu'un champ de tri donné change de valeur.
SUB-TOTAL et SUBTOTAL produisent les deux des totaux généraux. Vous pouvez supprimer les totaux généraux à l'aide de la commande NOTOTAL. Consultez Suppression de totaux généraux.
Le sous-total est calculé chaque fois que le champ BY change de valeur ou, si des critères WHERE sont appliqués au champ BY, chaque fois que les conditions WHEN sont remplies.
Une expression BY, ACROSS, ou ON est requise pour initialiser la syntaxe.
{BY|ON} fieldname {SUB-TOTAL|SUBTOTAL} [MULTILINES] [field1 [AND] field2...] [AS 'text'][WHEN expression;]
où :
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 dans 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.
SUB-TOTAL affiche les sous-totaux des valeurs numériques lorsque le champ BY|ON change de valeur, et pour tous les champs de tri de niveau supérieur lorsqu'ils changent de valeur.
SUBTOTAL n'affiche un sous-total que lorsque le champ de tri spécifié change de valeur.
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 prise en charge avec les champs de tri horizontal (ACROSS).
Indique une liste de champs particuliers à sous-totaliser. 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.
Vous permet de spécifier une autre étiquette. Pour plus d'informations, consultez Utilisation d'en-têtes, pieds de page, titres et étiquettes.
Spécifie l'affichage conditionnelle de sous-totaux comme le détermine une expression booléenne. L'expression doit terminer par un point virgule.
SET SUBTOTALS = {ABOVE|BELOW}
où :
Place les lignes récapitulatives au-dessus des lignes de détail et affiche les valeurs de critères de tri sur chaque ligne de détail de la sortie de rapport.
Place les lignes récapitulatives en-dessous des lignes de détail. BELOW est la valeur par défaut.
Remarque :
La requête suivante contre la source de données EMPLOYEE totalise les valeurs de déduction et les salaires bruts par service, par code prélèvement, et par nom de famille. Puis, la requête génère les sous-totaux des salaires bruts et de déduction pour chaque service. La requête suivante place les sous-totaux en-dessous des lignes de détail (par défaut) :
TABLE FILE EMPLOYEE SUM DED_AMT GROSS BY DEPARTMENT BY DED_CODE BY LAST_NAME WHERE BANK_ACCT NE 0 WHERE DED_CODE EQ 'FICA' OR 'CITY' ON DEPARTMENT SUBTOTAL ON TABLE SET SUBTOTALS BELOW ON TABLE SET PAGE NOPAGE END
La sortie est :
DEPARTMENT DED_CODE LAST_NAME DED_AMT GROSS ---------- -------- --------- ------- ----- MIS CITY BLACKWOOD $31.76 $9,075.00 CROSS $82.69 $22,013.77 JONES $14.01 $6,099.50 FICA BLACKWOOD $2,223.37 $9,075.00 CROSS $5,788.01 $22,013.77 JONES $980.64 $6,099.50 *TOTAL DEPARTMENT MIS $9,120.47 $74,376.54 PRODUCTION CITY BANNING $7.42 $2,475.00 IRVING $60.24 $17,094.00 MCKNIGHT $18.26 $9,129.99 FICA BANNING $519.75 $2,475.00 IRVING $4,216.53 $17,094.00 MCKNIGHT $1,278.21 $9,129.99 *TOTAL DEPARTMENT PRODUCTION $6,100.40 $57,397.98 TOTAL $15,220.88 $131,774.52
Voici un exemple de la même requête, mais avec les sous-totaux placés au-dessus des lignes de détail :
TABLE FILE EMPLOYEE SUM DED_AMT GROSS BY DEPARTMENT BY DED_CODE BY LAST_NAME WHERE BANK_ACCT NE 0 WHERE DED_CODE EQ 'FICA' OR 'CITY' ON DEPARTMENT SUBTOTAL ON TABLE SET SUBTOTALS ABOVE ON TABLE SET PAGE NOPAGE END
Sur la sortie, la ligne de total général apparaît en premier, puis le sous-total du service MIS suivi par les lignes de détail du service MIS, suivies par le sous-total du service PRODUCTION et ses lignes de détail. Notez que tous les critères de tri s'affichent sur chaque ligne de la sortie de rapport :
DEPARTMENT DED_CODE LAST_NAME DED_AMT GROSS ---------- -------- --------- ------- ----- TOTAL $15,220.88 $131,774.52 *TOTAL DEPARTMENT MIS $9,120.47 $74,376.54 MIS CITY BLACKWOOD $31.76 $9,075.00 MIS CITY CROSS $82.69 $22,013.77 MIS CITY JONES $14.01 $6,099.50 MIS FICA BLACKWOOD $2,223.37 $9,075.00 MIS FICA CROSS $5,788.01 $22,013.77 MIS FICA JONES $980.64 $6,099.50 *TOTAL DEPARTMENT PRODUCTION $6,100.40 $57,397.98 PRODUCTION CITY BANNING $7.42 $2,475.00 PRODUCTION CITY IRVING $60.24 $17,094.00 PRODUCTION CITY MCKNIGHT $18.26 $9,129.99 PRODUCTION FICA BANNING $519.75 $2,475.00 PRODUCTION FICA IRVING $4,216.53 $17,094.00 PRODUCTION FICA MCKNIGHT $1,278.21 $9,129.99
BY AREA BY PROD_CODE BY DATE SUB-TOTAL
lorsque AREA change, donc, les sous-totaux s'affichent pour DATE, PROD_CODE, et AREA sur trois lignes (l'une en dessous de l'autre).
Remarque : ON BYfield SUBFOOT s'applique uniquement au niveau spécifié.
La requête suivante illustre comment créer un sous-total pour le champ SALES chaque fois que le champ pays change de valeur.
TABLE FILE CAR SUM AVE.MPG AND SALES AND AVE.RETAIL_COST BY COUNTRY SUB-TOTAL SALES BY BODYTYPE END
La sortie est :
AVE AVE COUNTRY BODYTYPE MPG SALES RETAIL_COST ------- -------- ---- ----- ----------- ENGLAND CONVERTIBLE 16 0 8,878 HARDTOP 25 0 5,100 SEDAN 10 12000 15,671 *TOTAL ENGLAND 12000 FRANCE SEDAN 21 0 5,610 *TOTAL FRANCE 0 ITALY COUPE 11 12400 19,160 ROADSTER 21 13000 6,820 SEDAN 21 4800 5,925 *TOTAL ITALY 30200 JAPAN SEDAN 14 78030 3,239 *TOTAL JAPAN 78030 W GERMANY SEDAN 20 88190 9,247 *TOTAL W GERMANY 88190 TOTAL 208420
La requête suivante illustre comment créer un sous-total pour les champs numériques DED_AMT et GROSS lorsque le champ de service (DEPARTMENT) change de valeur, et pour le critère de tri de niveau supérieur (DED_CODE) lorsqu'il change de valeur.
TABLE FILE EMPLOYEE SUM DED_AMT GROSS BY DED_CODE BY DEPARTMENT BY BANK_ACCT WHERE BANK_ACCT NE 0 ON DEPARTMENT SUB-TOTAL END
Si vous utilisez SUBTOTAL au lieu de SUB-TOTAL, les totaux des champs DED_AMT et GROSS ne s'affichent que lorsque le champ DEPARTMENT change de valeur.
La première partie de la sortie est :
DED_CODE DEPARTMENT BANK_ACCT DED_AMT GROSS -------- ---------- --------- ------- ----- CITY MIS 40950036 $14.00 $6,099.50 122850108 $31.75 $9,075.00 163800144 $82.70 $22,013.75 *TOTAL DEPARTMENT MIS $128.45 $37,188.25 PRODUCTION 160633 $7.42 $2,475.00 136500120 $18.25 $9,130.00 819000702 $60.20 $17,094.00 *TOTAL DEPARTMENT PRODUCTION $85.87 $28,699.00 *TOTAL DED_CODE CITY $214.32 $65,887.25
La dernière page de sortie est:
DED_CODE DEPARTMENT BANK_ACCT DED_AMT GROSS -------- ---------- --------- ------- ----- STAT MIS 40950036 $196.13 $6,099.50 122850108 $444.65 $9,075.00 163800144 $1,157.60 $22,013.75 *TOTAL DEPARTMENT MIS $1,798.38 $37,188.25 PRODUCTION 160633 $103.95 $2,475.00 136500120 $255.65 $9,130.00 819000702 $843.32 $17,094.00 *TOTAL DEPARTMENT PRODUCTION $1,202.92 $28,699.00 *TOTAL DED_CODE STAT $3,001.30 $65,887.25 TOTAL $41,521.18 $461,210.75
WebFOCUS |