Puede utilizar los comandos SUBTOTAL, SUB-TOTAL, RECOMPUTE y SUMMARIZE en el nivel ON TABLE, para especificar el tipo de operación de resumen que se va a usar para producir la línea de total general en el informe.
Además, se pueden utilizar operadores de prefijo con las opciones de resumen SUBTOTAL, SUB-TOTAL, RECOMPUTE y SUMMARIZE tanto en el nivel de salto de clasificación como en el de total general.
Las operaciones de prefijo en líneas de resumen se ejecutan en los valores recuperados, seleccionados y resumidos que se convierten en las líneas de detalle del informe. A diferencia de las operaciones de prefijo basadas en campos, éstas no se ejecutan en cada registro que ingrese.
Cada tipo de resumen cuenta con su propio propósito y maneja los operadores de prefijo de forma apropiada para el tipo de información de resumen que hay que mostrar. Por ejemplo, si utiliza AVE. en un salto de clasificación, se produce un promedio en el grupo de clasificación.
Los campos alfanuméricos se pueden mostrar también en líneas de resumen. Para lograr esto, debe listar de forma explícita el nombre del campo alfanumérico en el comando de resumen, o bien usar el comodín asterisco (*) para mostrar todos los campos.
En la misma línea de resumen se muestran diferentes operaciones de dos frases ON para el mismo salto de clasificación, que permiten una mezcla de operaciones en líneas de resumen. La línea de total general alimenta todos los campos alimentados por cualquier comando de resumen, incluidos los campos no especificados en el comando de total general.
Si se hace referencia al mismo campo en más de una frase ON para el mismo salto de clasificación, se aplica la última función especificada.
Para campos numéricos, se admiten los operadores de prefijo que aparecen a continuación:
Para campos alfanuméricos, se admiten los operadores de prefijo que aparecen a continuación:
{BY|ON} breakfield [AS 'text1'] sumoption [MULTILINES] [pref. ] [*|[field1 [[pref2. ] field2 ...]]] [AS 'text2'] [WHEN expression;]
Para reemplazar el total general predeterminado, utilice la siguiente sintaxis:
ON TABLE sumoption [pref. ][field1 [[pref2. ]field2 ...]] [AS 'text2']
donde:
El siguiente ejemplo utiliza operadores de prefijo para calcular:
Fíjese en que la fila de subtotal de cada valoración contiene un valor solamente en la columna LISTPR y la fila de subtotal para cada categoría contiene un valor sólo en la columna COPIES. La línea del total general contiene valores para las columnas que han sido subtotalizadas. Fíjese en el espacio en blanco entre cada operador de prefijo y el nombre de campo que lo sigue:
TABLE FILE MOVIES PRINT COPIES LISTPR WHOLESALEPR TITLE/A23 BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' OR 'CLASSIC' WHERE RATING EQ 'G' OR 'NR' ON RATING SUBTOTAL AVE. LISTPR AS '*Ave: ' ON CATEGORY SUBTOTAL SUM. COPIES AS '*Sum: ' END
La salida es:
RATING CATEGORY COPIES LISTPR WHOLESALEPR TITLE ------ -------- ------ ------ ----------- ----- G CHILDREN 2 44.95 29.99 SHAGGY DOG, THE 2 29.95 12.50 ALICE IN WONDERLAND 3 26.99 12.00 BAMBI *Sum: CHILDREN 7 CLASSIC 3 89.95 40.99 GONE WITH THE WIND *Sum: CLASSIC 3 *Ave: G 47.96 NR CHILDREN 1 19.95 10.00 SMURFS, THE 1 19.95 9.75 SCOOBY-DOO-A DOG IN THE 1 14.95 7.65 SESAME STREET-BEDTIME S 1 14.98 7.99 ROMPER ROOM-ASK MISS MO 1 29.95 15.99 SLEEPING BEAUTY *Sum: CHILDREN 5 CLASSIC 1 24.98 14.99 EAST OF EDEN 3 39.99 20.00 CITIZEN KANE 1 29.95 15.99 CYRANO DE BERGERAC 1 19.99 10.95 MARTY 2 19.99 10.95 MALTESE FALCON, THE 2 19.95 9.99 ON THE WATERFRONT 2 89.99 40.99 MUTINY ON THE BOUNTY 2 19.99 10.95 PHILADELPHIA STORY, THE 2 19.98 10.99 CAT ON A HOT TIN ROOF 2 29.95 15.00 CASABLANCA *Sum: CLASSIC 18 *Ave: NR 27.64 TOTAL 33 31.91
En el ejemplo siguiente, se añade el comando ON TABLE SUBTOTAL a la solicitud que aparece en Cómo utilizar operadores de prefijo con SUBTOTAL, al nivel de salto de clasificación, para calcular el número mínimo de copias y el máximo precio de lista, en la línea de total general de todo el informe:
TABLE FILE MOVIES PRINT COPIES LISTPR WHOLESALEPR TITLE/A23 BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' OR 'CLASSIC' WHERE RATING EQ 'G' OR 'NR' ON RATING SUBTOTAL AVE. LISTPR AS '*Ave: ' ON CATEGORY SUBTOTAL SUM. COPIES AS '*Sum: ' ON TABLE SUBTOTAL MIN. COPIES MAX. LISTPR END
La salida es exactamente la misma que en la solicitud anterior, excepto por la línea del gran total:
RATING CATEGORY COPIES LISTPR WHOLESALEPR TITLE ------ -------- ------ ------ ----------- ----- G CHILDREN 2 44.95 29.99 SHAGGY DOG, THE 2 29.95 12.50 ALICE IN WONDERLAND 3 26.99 12.00 BAMBI *Sum: CHILDREN 7 CLASSIC 3 89.95 40.99 GONE WITH THE WIND *Sum: CLASSIC 3 *Ave: G 47.96 NR CHILDREN 1 19.95 10.00 SMURFS, THE 1 19.95 9.75 SCOOBY-DOO-A DOG IN THE 1 14.95 7.65 SESAME STREET-BEDTIME S 1 14.98 7.99 ROMPER ROOM-ASK MISS MO 1 29.95 15.99 SLEEPING BEAUTY *Sum: CHILDREN 5 CLASSIC 1 24.98 14.99 EAST OF EDEN 3 39.99 20.00 CITIZEN KANE 1 29.95 15.99 CYRANO DE BERGERAC 1 19.99 10.95 MARTY 2 19.99 10.95 MALTESE FALCON, THE 2 19.95 9.99 ON THE WATERFRONT 2 89.99 40.99 MUTINY ON THE BOUNTY 2 19.99 10.95 PHILADELPHIA STORY, THE 2 19.98 10.99 CAT ON A HOT TIN ROOF 2 29.95 15.00 CASABLANCA *Sum: CLASSIC 18 *Ave: NR 27.64 TOTAL 1 89.99
La siguiente solicitud muestra la suma del campo de precio de lista y el valor mínimo del campo director por valoración:
TABLE FILE MOVIES PRINT COPIES LISTPR WHOLESALEPR DIRECTOR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' OR 'CLASSIC' WHERE RATING EQ 'G' OR 'NR' WHERE DIRECTOR NE ' ' ON RATING SUBTOTAL SUM. LISTPR MIN. DIRECTOR AS '*A/N:' END
La salida es:
RATING CATEGORY COPIES LISTPR WHOLESALEPR DIRECTOR ------ -------- ------ ------ ----------- -------- G CHILDREN 2 44.95 29.99 BARTON C. 2 29.95 12.50 GEROMINI 3 26.99 12.00 DISNEY W. CLASSIC 3 89.95 40.99 FLEMING V *A/N: G 191.84 BARTON C. NR CHILDREN 1 29.95 15.99 DISNEY W. CLASSIC 1 24.98 14.99 KAZAN E. 3 39.99 20.00 WELLES O. 1 29.95 15.99 GORDON M. 1 19.99 10.95 MANN D. 2 19.99 10.95 HUSTON J. 2 19.95 9.99 KAZAN E. 2 89.99 40.99 MILESTONE L. 2 19.99 10.95 CUKOR G. 2 19.98 10.99 BROOKS R. 2 29.95 15.00 CURTIZ M. *A/N: NR 344.71 BROOKS R. TOTAL 536.55 BARTON C.
La siguiente solicitud muestra la suma del campo de visualización en la línea de subtotal. El campo director es alfanumérico, por lo que se muestra el último valor:
TABLE FILE MOVIES PRINT COPIES LISTPR WHOLESALEPR DIRECTOR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' OR 'CLASSIC' WHERE RATING EQ 'G' OR 'NR' WHERE DIRECTOR NE ' ' ON RATING SUBTOTAL SUM. * AS '*All: ' END
La salida es:
RATING CATEGORY COPIES LISTPR WHOLESALEPR DIRECTOR ------ -------- ------ ------ ----------- -------- G CHILDREN 2 44.95 29.99 BARTON C. 2 29.95 12.50 GEROMINI 3 26.99 12.00 DISNEY W. CLASSIC 3 89.95 40.99 FLEMING V *All: G 10 191.84 95.48 FLEMING V NR CHILDREN 1 29.95 15.99 DISNEY W. CLASSIC 1 24.98 14.99 KAZAN E. 3 39.99 20.00 WELLES O. 1 29.95 15.99 GORDON M. 1 19.99 10.95 MANN D. 2 19.99 10.95 HUSTON J. 2 19.95 9.99 KAZAN E. 2 89.99 40.99 MILESTONE L. 2 19.99 10.95 CUKOR G. 2 19.98 10.99 BROOKS R. 2 29.95 15.00 CURTIZ M. *All: NR 19 344.71 176.79 CURTIZ M. TOTAL 29 536.55 272.27 CURTIZ M.
Cómo: Referencia: |
Cuando vaya a procesar líneas de suma, puede controlar si desea utilizar el procesamiento con operadores de prefijos y si desea que los comandos SUBTOTAL y RECOMPUTE se distribuyan a la fila de gran total de un informe.
El procesamiento de líneas de resumen con operadores de prefijo difiere del procesamiento sin operadores de prefijo en los tipos de operaciones que se admiten y en los campos afectados.
De forma predeterminada, no puede mezclar ambos estilos de procesamiento en una solicitud y la sintaxis usada en la solicitud (con operadores de prefijo o sin estos en las líneas del resumen) determinará el tipo de procesamiento que se usará.
Una de las funciones del ajuste SUMMARYLINES es la capacidad de combinar campos con y sin operadores de prefijos en las líneas de suma en una solicitud. En ese caso, se utiliza el procesamiento con operadores de prefijo en todas las líneas del resumen. Los campos que no tengan operadores de prefijo se procesarán como si llevaran el operador SUM. Se necesita el nuevo procesamiento para mostrar campos alfanuméricos en líneas de resumen.
El procesamiento de informes que utilicen operadores de prefijo en líneas de resumen difiere del procesamiento sin operadores de prefijo. En algunos casos, cada tipo de solicitud devuelve un estilo diferente de salida de informe.
Si un comando de resumen especifica un nombre de campo y otro comando de resumen especifica un segundo nombre de campo:
Si se utiliza un operador de prefijo en cualquier comando de resumen, se requiere el procesamiento de operador de prefijo para la solicitud. En la mayoría de las solicitudes, suele estar claro qué tipo de procesamiento debe utilizarse, aunque se especifiquen operadores de prefijo en algunos comandos de resumen, pero no en otros.
Sin embargo, si la primera vez que se encuentra un operador de prefijo que tiene lugar despúes de haberse especificado en un comando de resumen, sin un operador de prefijo que lo acompañe, no se podrá implementar ningún tipo de procesamiento. En este caso, el procesamiento se para y se genera el siguiente mensaje de error (por defecto):
(FOC36376) CANNOT COMBINE SUBTOTAL/RECOMPUTE STYLES WHEN SUMMARYLINES=OLD
Por ejemplo:
ON RATING SUBTOTAL COPIES AVE. LISTPR
o
ON RATING SUBTOTAL LISTPR ON CATEGORY SUBTOTAL AVE. COPIES
Puede eliminar este problema emitiendo el comando SET SUMMARYLINES=NEW para especificar que se utilizará procesamiento de operador de prefijo. El operador de prefijo SUM. se aplica entonces a cualquier campo que no tenga un operador de prefijo.
Se necesita el nuevo procesamiento para mostrar campos alfanuméricos en líneas de resumen.
La segunda función del comando SET SUMMARYLINES es que el procesamiento de SUBTOTAL, SUB-TOTAL, SUMMARIZE y RECOMPUTE, en la línea de gran total, sea consistente con la manera en que éstos funcionan para saltos de campos de clasificación. El comando que invoca este tipo de procesamiento es SET SUMMARYLINES=EXPLICIT.
Cuando se usan SUBTOTAL y RECOMPUTE a nivel de salto de clasificación, no se propagan a otras saltos de clasificación. SUB-TOTAL y SUMMARIZE se propagan a todas los saltos de clasificación de nivel superior.
El gran total puede considerarse como el campo de clasificación de más alto nivel en una solicitud. Sin embargo, todas las demás opciones de resumen, no sólo SUB-TOTAL y SUMMARIZE, se propagan por defecto al nivel del total general.
El comando SET SUMMARYLINES=EXPLICIT evita la distribución de SUBTOTAL y RECOMPUTE al gran total. Además, si todos los comandos de resumen de la solicitud especifican listas de campos, sólo agregan y muestran los campos especificados en la línea del total general.
Cuando SUBTOTAL y RECOMPUTE son los únicos comandos de resumen usados en la solicitud, se produce una línea de total general sólo si se especifica explícitamente en la solicitud mediante la frase ON TABLE SUBTOTAL/SUB-TOTAL/RECOMPUTE/SUMMARIZE. Si la frase ON TABLE especifica una lista de campos, sólo se suman y se muestran esos campos.
Observe que siempre podrá suprimir la línea del total general usando el comando ON TABLE NOTOTAL en la solicitud.
SET SUMMARYLINES = {OLD|NEW|EXPLICIT}
donde:
Observe que se aplica un operador de prefijo que preceda a una lista de nombres de campo a cada una de las columnas de ese informe (y, por lo tanto, no se considera que se están mezclando). Puede especificar el operador SUM. para los campos con los que desee obtener un subtotal estándar. Esto produce el mismo valor que se hubiese generado sin los operadores de prefijo. No se incluyen campos alfanuméricos en las líneas de resumen.
NEW también permite las operaciones de resumen con columnas alfanuméricas. El valor alfanumérico mostrado en una línea SUBTOTAL o SUB-TOTAL se trata del primer o último valor alfanumérico perteneciente al grupo de clasificación, dependiendo del valor del parámetro SUMPREFIX. En las líneas RECOMPUTE o SUMMARIZE, los valores alfanuméricos se calculan nuevamente mediante los valores de resumen de estas líneas.
Fíjese que: Este comando no está soportado en una solicitud que use la sintaxis ON TABLE SET.
Por ejemplo:
TABLE FILE MOVIES PRINT COPIES LISTPR WHOLESALEPR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' WHERE RATING EQ 'G' ON RATING SUBTOTAL LISTPR AS '*LIST' ON CATEGORY SUBTOTAL COPIES AS '*COPY' END
La salida cuando SUMMARYLINES=OLD tiene subtotales para COPIES y LISTPR en ambos saltos de clasificación. No se menciona WHOLESALEPR en ningún comando SUBTOTAL y, por lo tanto, no se encuentra en la línea de resumen:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 2 44.95 29.99 2 29.95 12.50 3 26.99 12.00 *COPY CHILDREN 7 101.89 *LIST G 7 101.89 TOTAL 7 101.89
La salida cuando SUMMARYLINES=NEW tiene subtotales para COPIES en el salto de clasificación CATEGORY y para LISTPR en el salto de clasificación RATING. Ambas columnas se alimentan en la línea de total general. No se menciona WHOLESALEPR en ningún comando SUBTOTAL y, por lo tanto, no se encuentra en la línea de resumen:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 2 44.95 29.99 2 29.95 12.50 3 26.99 12.00 *COPY CHILDREN 7 *LIST G 101.89 TOTAL 7 101.89
La siguiente solicitud usando el origen de datos MOVIES tiene un salto de clasificación para CATEGORY que subtotaliza el campo COPIES y un salto de clasificación para RATING que subtotaliza el campo LISTPR:
SET SUMMARYLINES=OLD TABLE FILE MOVIES SUM COPIES LISTPR WHOLESALEPR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' WHERE RATING EQ 'G' ON RATING SUBTOTAL COPIES ON CATEGORY SUBTOTAL LISTPR END
La ejecución de la solicitud con SUMMARYLINES=OLD subtotaliza tanto COPIES como LISTPR en cada salto de clasificación y los propaga a la línea del total general:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 7 101.89 *TOTAL G 7 101.89 TOTAL 7 101.89
La ejecución de la solicitud con SUMMARYLINES=NEW subtotaliza COPIES sólo para el salto de clasificación RATING y subtotaliza LISTPR sólo para el salto de clasificación CATEGORY, pero propaga ambos a la línea del total general:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7 TOTAL 7 101.89
La ejecución de la solicitud con SUMMARYLINES=EXPLICIT subtotaliza COPIES sólo para el salto de clasificación RATING y subtotaliza LISTPR sólo para el salto de clasificación CATEGORY. No produce una línea de total general:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7
Si se añada la frase ON TABLE SUBTOTAL WHOLESALEPR a SUMMARYLINES=EXPLICIT se produce una línea de total general con el subtotal del campo WHOLESALEPR.
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7 TOTAL 54.49
La siguiente solicitud, en que se usa el origen de datos MOVIE, tiene un salto de clasificación para CATEGORY para el cual se subtotaliza el campo COPIES y un salto de clasificación para RATING que subtotaliza el campo LISTPR. También tiene una frase ON TABLE COLUMN-TOTAL:
SET SUMMARYLINES=EXPLICIT TABLE FILE MOVIES SUM COPIES LISTPR WHOLESALEPR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' WHERE RATING EQ 'G' ON RATING SUBTOTAL COPIES ON CATEGORY SUBTOTAL LISTPR ON TABLE COLUMN-TOTAL END
La línea del total general muestra un total de columna para todas las columnas numéricas debido a la frase ON TABLE COLUMN-TOTAL:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7 TOTAL 7 101.89 54.49
La siguiente solicitud tiene un comando ON TABLE COLUMN-WHOLESALEPR: También tiene una frase ON TABLE COLUMN-TOTAL:
SET SUMMARYLINES=EXPLICIT TABLE FILE MOVIES SUM COPIES LISTPR WHOLESALEPR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' WHERE RATING EQ 'G' ON RATING SUBTOTAL COPIES ON CATEGORY SUBTOTAL LISTPR ON TABLE SUBTOTAL WHOLESALEPR ON TABLE COLUMN-TOTAL END
La línea del total general sólo muestra un total de columna para la columna WHOLESALEPR debido al comando ON TABLE SUBTOTAL:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7 TOTAL 54.49
El uso de SUB-TOTAL en vez de SUBTOTAL provoca que COPIES y LISTPR se agreguen a la línea de total general. Se totaliza WHOLESALEPR porque aparece enumerado en la frase COLUMN-TOTAL. El subtotal de LISTPR se propaga al salto de clasificación RATING así como al total general:
SET SUMMARYLINES=EXPLICIT TABLE FILE MOVIES SUM COPIES LISTPR WHOLESALEPR BY RATING BY CATEGORY WHERE CATEGORY EQ 'CHILDREN' WHERE RATING EQ 'G' ON RATING SUB-TOTAL COPIES ON CATEGORY SUB-TOTAL LISTPR ON TABLE COLUMN-TOTAL WHOLESALEPR END
La salida es:
RATING CATEGORY COPIES LISTPR WHOLESALEPR ------ -------- ------ ------ ----------- G CHILDREN 7 101.89 54.49 *TOTAL CHILDREN 101.89 *TOTAL G 7 101.89 TOTAL 7 101.89 54.49
Si una solicitud incluye el comando RECOMPUTE o SUMMARIZE, la expresión especificada en el comando COMPUTE asociado se aplica usando valores de la línea del resumen. La columna usada para recalcular la expresión puede tener operadores de prefijos. La columna recalculada, sea cual sea el operador de prefijo especificado, aplica los valores de entrada a la expresión especificada en la instrucción COMPUTE. Por lo tanto, cualquier operador de prefijo soportado se puede especificar para la columna recalculada del informe sin afectar el valor calculado.
Con el procesamiento de operadores de prefijos, todos los campos usados en el comando COMPUTE se deben mostrar por el comando RECOMPUTE o SUMMARIZE para poder ser completados. Si no se alimenta cualquiera de los campos utilizados en la expresión, el valor calculado obtenido para la expresión resulta impredecible.
La primera solicitud crea un nombre de campo calculado, que es la diferencia entre DOLLARS y BUDDOLLARS. Este valor después se recalcula (RECOMPUTE) para cada región, sin utilizar operadores de prefijo.
TABLE FILE GGSALES SUM UNITS DOLLARS BUDDOLLARS AND COMPUTE DIFF/I10 = DOLLARS-BUDDOLLARS; BY REGION BY CATEGORY WHERE CATEGORY EQ 'Food' OR 'Coffee' WHERE REGION EQ 'West' OR 'Midwest' ON REGION RECOMPUTE END
El valor recalculado es la diferencia ente los totales para DOLLARS y BUDDOLLARS.
Region Category Unit Sales Dollar Sales Budget Dollars DIFF ------ -------- ---------- ------------ -------------- ---- Midwest Coffee 332777 4178513 4086032 92481 Food 341414 4338271 4220721 117550 *TOTAL Midwest 674191 8516784 8306753 210031 West Coffee 356763 4473517 4523963 -50446 Food 340234 4202337 4183244 19093 *TOTAL West 696997 8675854 8707207 -31353 TOTAL 1371188 17192638 17013960 178678
La siguiente solicitud utiliza operadores de prefijo en el comando RECOMPUTE para calcular el máximo de DOLLARS y el mínimo de BUDDOLLARS y luego recalcular DIFF. No importa el operador de prefijo que especifique para DIFF, se calcula como la diferencia entre los valores de las columnas DOLLARS y BUDDOLLARS. No se puede realizar el cálculo si alguno de los campos usados en el cálculo (DOLLARS, BUDDOLLARS y DIFF) no aparece en la fila del resumen.
TABLE FILE GGSALES SUM UNITS DOLLARS BUDDOLLARS AND COMPUTE DIFF/I10 = DOLLARS-BUDDOLLARS; BY REGION BY CATEGORY WHERE CATEGORY EQ 'Food' OR 'Coffee' WHERE REGION EQ 'West' OR 'Midwest' ON REGION RECOMPUTE MAX. DOLLARS MIN. BUDDOLLARS AVE. DIFF END
La salida es:
Region Category Unit Sales Dollar Sales Budget Dollars DIFF ------ -------- ---------- ------------ -------------- ---- Midwest Coffee 332777 4178513 4086032 92481 Food 341414 4338271 4220721 117550 *TOTAL Midwest 4338271 4086032 252239 West Coffee 356763 4473517 4523963 -50446 Food 340234 4202337 4183244 19093 *TOTAL West 4473517 4183244 290273
El ejemplo que sigue añade el comando ON TABLE RECOMPUTE a la solicitud que aparece en Cómo utilizar operadores de prefijo con RECOMPUTE para calcular los valores promedio para cada columna. Tenga en cuenta que el valor de DIFF se calcula como la diferencia entre los valores en las columnas Dollar Sales y Budget Dollars en la línea del total general:
TABLE FILE GGSALES SUM UNITS DOLLARS BUDDOLLARS AND COMPUTE DIFF/I10 = DOLLARS-BUDDOLLARS; BY REGION BY CATEGORY WHERE CATEGORY EQ 'Food' OR 'Coffee' WHERE REGION EQ 'West' OR 'Midwest' ON REGION RECOMPUTE MAX. DOLLARS MIN. BUDDOLLARS DIFF ON TABLE RECOMPUTE AVE. END
La salida es:
Region Category Unit Sales Dollar Sales Budget Dollars DIFF ------ -------- ---------- ------------ -------------- ---- Midwest Coffee 332777 4178513 4086032 92481 Food 341414 4338271 4220721 117550 *TOTAL Midwest 4338271 4086032 252239 West Coffee 356763 4473527 4523963 -50436 Food 340234 4202338 4183244 19094 *TOTAL West 4473527 4183244 290283 TOTAL 342797 4298162 4253490 44672
SUB-TOTAL y SUMMARIZE distribuyen sus operaciones a todos los campos de clasificación de alto nivel. Si una solicitud usa SUBTOTAL o SUMMARIZE en múltiples niveles de clasificación, se puede aplicar más de un operador de prefijo al mismo campo.
Cuando se distribuye un comando SUB-TOTAL o SUMMARIZE desde un nivel de clasificación de bajo nivel a niveles superiores, ésta aplica sus operadores de prefijo sólo a los campos que no tenían diferentes operadores de prefijo previamente especificados en el nivel más alto. Para cualquier campo que tenga un operador de prefijo especificado en un nivel superior, se aplica el operador de prefijo original tanto al nivel en que se especificó inicialmente como a la línea de total general, a menos que se especifique un operador diferente para la línea de total general.
El ejemplo que sigue muestra el trabajo de los operadores de prefijo en una solicitud con múltiples comandos SUB-TOTAL, cada uno con un operador de prefijo diferente.
DEFINE FILE GGSALES YEAR/YY = DATE; END TABLE FILE GGSALES SUM UNITS DOLLARS/D10.2 BUDDOLLARS BY YEAR BY ST BY REGION BY CATEGORY WHERE REGION EQ 'West' OR 'Midwest' WHERE ST EQ 'CA' OR 'IL' WHERE YEAR EQ '1996' OR '1997' ON YEAR SUB-TOTAL CNT. UNITS AS '*CNT. UNITS:' ON ST SUB-TOTAL AVE. DOLLARS AS '*AVE. $:' ON REGION SUB-TOTAL MIN. AS '*MIN.:' END
En la siguiente salida de informe, algunos valores se han puesto en cursiva o negrita, para mayor claridad:
WebFOCUS |