Comment : Référence : |
Les commandes récapitulatives SUBTOTAL, SUB-TOTAL, SUMMARIZE et RECOMPUTE peuvent être utilisées avec des sauts de tri horizontal.
Quand une requête a plusieurs champs d'affichage et un champ de tri ACROSS, la sortie de rapports à plusieurs colonnes sous chaque valeur ACROSS. Si vous voulez appliquer un champ résumé à certaines colonnes pour chaque valeur ACROSS, mais pas à d'autres, vous pouvez spécifier les noms de champ que vous voulez résumer. Cette technique est la plus utile pour des requêtes de rapport utilisant la phrase OVER pour placer les champs sur des lignes séparées
{ACROSS|ON} acrossfield [AS 'text1'] sumoption [AS 'text2'] [COLUMNS c1 [AND c2 ...]]
ou
ACROSS acrossfieldsumoption [field1field2 ... fieldn]
ou
ACROSS acrossfield
ON acrossfieldsumoption [field1field2 ... fieldn]
où :
Sont les champs qui auront la commande résumé appliquée. Si aucun champ n'est listé, tous les champs seront résumés.
La requête suivante additionne unités et dollars et calcule le coût unitaire par produit et en fonction de la région et du mois. La commande ACROSS MNTH RECOMPUTE crée des totaux pour les unitées et les dollars et recalcule la valeur calculée des mois sélectionnés au sein des régions. La commande ACROSS REGION RECOMPUTE effectue la même opération pour les régions sélectionnées. La commande ON TABLE SUMMARIZE crée des rangées récapitulatives. Elle n'a aucune effet sur les colonnes :
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
La sortie est :
La requête suivante sur la source de données GGSALES fait la somme des champs DOLLARS et UNITS par CATEGORY et dans REGION, mais n'effectue de sous-totaux que sur le champ 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
La sortie montre que seuls les sous-totaux des lignes avec les valeurs UNITS sont effectués.
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
La requête suivante sur la source de données GGSALES fait la somme des champs DOLLARS et UNITS et fait le calcul de DOLLARS PER UNIT dans REGION. La requête a aussi un champ de niveau supérieur ACROSS, CATEGORY, et donc la commande SUMMARIZE se propage sur les deux champs ACROSS.
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
Le premier panneau de sortie montre :
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
Le second panneau a la colonne total pour la catégorie Gifts et la colonne total général. Chacune d'entre elles a seulement une valeur dans la ligne DPERU.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars Units DPERU 12.58 12.55
La requête suivante sur la source de données GGSALES fait la somme des champs DOLLARS et UNITS avec ACROSS CATEGORY et ACROSS REGION, avec une commande SUMMARIZE sur le champ REGION. La requête a aussi un champ de niveau supérieur ACROSS, CATEGORY, et donc la commande SUMMARIZE se propage sur les deux champs ACROSS. La commande SUMMARIZE spécifie AVE. opérateur de préfixe pour le champ DOLLARS.
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
Le premier panneau de sortie montre :
PAGE 1.1 Category Food Gifts Region Midwest West TOTAL Midwest West ------------------------------------------------------------------------- Dollars 4338271 4202337 4270304 2883881 2977092 Units 341414 340234 230854 235042
Le second panneau a la colonne total pour la catégorie Gifts et la colonne total général. Chacune d'entre elles a seulement une valeur dans la ligne DOLLARS.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars 2930486 3600395 Units
La requête suivante sur la source de données GGSALES fait la somme des champs DOLLARS et UNITS avec ACROSS CATEGORY et ACROSS REGION, avec une commande SUMMARIZE sur le champ REGION et une commande SUBTOTAL sur le champ CATEGORY. La commande SUMMARIZE spécifie la moyenne DOLLARS et le minimum UNITS. La commande SUBTOTAL spécifié le minimum DOLLARS.
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
Sur la sortie, toutes les colonnes TOTAL ont le minimum UNITS. Les colonnes TOTAL associées avec le champ de tri REGION ont la moyenne DOLLARS, mais la colonne TOTAL associée avec le champ de tri CATEGORY a le minimum DOLLARS parce que SUMMARIZE ne change pas l'opérateur de préfixe associé avec un champ de tri de niveau supérieur.
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 |