Cómo: Referencia: |
Los comandos de resumen SUBTOTAL, SUB-TOTAL, SUMMARIZE y RECOMPUTE pueden usarse con saltos de clasificación horizontal.
Cuando una solicitud tiene múltiples campos de visualización y un campo de clasificación ACROSS, la salida del informe presenta múltiples columnas debajo de cada valor de ACROSS. Si quiere aplican un campo de resumen en algunas de las columnas de cada valor de ACROSS, pero no en otras, especifique los nombres de los campos que desea resumir. Esta técnica resulta especialmente útil con las solicitudes de informe que utilizan la frase OVER para colocar los campos en filas diferentes.
{ACROSS|ON} acrossfield [AS 'text1'] sumoption [AS 'text2'] [COLUMNS c1 [AND c2 ...]]
o
ACROSS acrossfieldsumoption [field1field2 ... fieldn]
o
ACROSS acrossfield
ON acrossfieldsumoption [field1field2 ... fieldn]
donde:
Los campos en que se ha aplicado el comando de resumen. Si no aparece listado ningún campo, se resumen todos los campos.
La siguiente solicitud suma unidades y dólares y calcula la unidad de coste por producto (BY) y por región y mes (ACROSS). El comando ACROSS MNTH RECOMPUTE crea el total de unidades y dólares, y vuelve a computar el valor calculado para los meses seleccionados dentro de ciertas regiones. El comando ACROSS REGION RECOMPUTE hace lo mismo con las regiones seleccionadas. El comando ON TABLE SUMMARIZE crea filas de sumas. No afecta a las columnas:
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 salida es:
La siguiente solicitud, basada en el origen de datos GGSALES, suma los campos DOLLARS y UNITS en función de CATEGORY y en cada REGION, pero sólo calcula el subtotal del campo 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 salida muestra que sólo se ha calculado el subtotal de los valores de UNITS.
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 siguiente solicitud, basada en el origen de datos GGSALES, suma los campos DOLLARS y UNITS y calcula DOLLARS PER UNIT en cada REGION. La solicitud también presenta un campo ACROSS de nivel superior, CATEGORY, así que el comando SUMMARIZE se propaga a los dos campos 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
El primer panel de la salida muestra:
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
El segundo panel incluye la columna de total de la categoría Gifts y la columna de total general. Estas columnas sólo tienen un valor en la fila DPERU.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars Units DPERU 12.58 12.55
La siguiente solicitud, basada en el origen de datos GGSALES, suma los campos DOLLARS y UNITS ACROSS CATEGORY y ACROSS REGION, con un comando SUMMARIZE en el campo REGION. La solicitud también presenta un campo ACROSS de nivel superior, CATEGORY, así que el comando SUMMARIZE se propaga a los dos campos ACROSS. El comando SUMMARIZE especifica el operador de prefijo AVE. para el campo 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
El primer panel de la salida muestra:
PAGE 1.1 Category Food Gifts Region Midwest West TOTAL Midwest West ------------------------------------------------------------------------- Dollars 4338271 4202337 4270304 2883881 2977092 Units 341414 340234 230854 235042
El segundo panel incluye la columna de total de la categoría Gifts y la columna de total general. Estas columnas sólo tienen un valor en la fila DOLLARS.
PAGE 1.2 Category TOTAL Region TOTAL ---------------------------------- Dollars 2930486 3600395 Units
La siguiente solicitud, basada en el origen de datos GGSALES, suma los campos DOLLARS y UNITS ACROSS CATEGORY y ACROSS REGION, con un comando SUMMARIZE en el campo REGION y un comando de SUBTOTAL en el campo CATEGORY. El comando SUMMARIZE especifica el promedio de DOLLARS y el mínimo de UNITS. El comando SUBTOTAL especifica el mínimo de 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
En la salida, todas las columnas de TOTAL tienen el mínimo de UNITS. Las columnas de TOTAL asociadas al campo de clasificación REGION, tienen el promedio de DOLLARS, pero la columna de TOTAL asociada al campo de clasificación CATEGORY tiene el mínimo, ya que SUMMARIZE no cambia el operador de prefijo asociado al campo de clasificación de nivel superior.
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 |