Combinaciones de comandos de resumen

Referencia:

Puede especificar una operación de resumen diferente por cada salto de clasificación (campo BY o ACROSS).

Si tiene múltiples comandos de resumen para el mismo campo de clasificación BY, se muestra el siguiente mensaje y se usa el último comando de resumen especificado en la solicitud:

(FOC36359)  MORE THAN 1 SUBTOTAL/SUB-TOTAL/RECOMPUTE/SUMMARIZE

Hay más de un SUBTOTAL/SUB-TOTAL/RECOMPUTE/SUMMARIZE en el mismo campo clave, lo cual no está permitido. El último especificado eliminará al resto.

SUMMARIZE y SUB-TOTAL, que propagan sus operaciones de resumen a niveles más altos de salto de clasificación, se saltan los campos ubicados en niveles más altos de salto de clasificación que tienen sus propios comandos de resumen. La propagación de operaciones de resumen depende de si se utiliza el procesamiento de operador de prefijo para líneas de resumen. Si los operadores de prefijo:

Los operadores de prefijo en líneas de resumen arrojan los mismo valores si el comando es RECOMPUTE/SUMMARIZE o si es SUBTOTAL/SUB-TOTAL. En campos calculados no se aplica el operador de prefijo, sino que el valor se recalcula mediante la expresión en el comando COMPUTE y los valores de la línea de resumen.

Cuando utiliza diferentes comandos de resumen para campos de clasificación distintos, la fila de total general predeterminada hereda el comando de resumen relacionado con el primer campo de clasificación en la solicitud. Puede cambiar la operación realizada al nivel del total general mediante la frase ON TABLE para especificar un comando de resumen concreto.

Nota: Se considera al total general como el nivel de clasificación más alto. Por lo tanto, aunque puede utilizar los comandos SUMMARIZE o SUB-TOTAL al nivel del total general, dichos comandos se aplican solamente al nivel del total general y no se propagan a ninguna otra línea del informe. Al nivel de total general, SUMMARIZE funciona como un comando RECOMPUTE, en tanto que SUB-TOTAL funciona como un comando SUBTOTAL.


Principio de página

Ejemplo: Cómo utilizar SUBTOTAL y RECOMPUTE en una solicitud

En la siguiente solicitud, el primer campo de clasificación especificado es COPIES, que está asociado con el comando RECOMPUTE. Por lo tanto, en la línea del total general, el valor de RATIO es recalculado correctamente y se suman los valores de LISTPR y WHOLESALEPR (porque es la operación predeterminada cuando el campo no ha sido calculado con un comando COMPUTE).

TABLE FILE MOVIES
PRINT DIRECTOR LISTPR WHOLESALEPR
COMPUTE RATIO = LISTPR/WHOLESALEPR;
BY COPIES
BY RATING
WHERE COPIES LT 3
WHERE DIRECTOR EQ 'DISNEY W.' OR 'HITCHCOCK A.'
ON COPIES RECOMPUTE AS '*REC: '
ON RATING SUBTOTAL AS '*SUB:  '
END

La salida es:

COPIES  RATING  DIRECTOR           LISTPR  WHOLESALEPR           RATIO
------  ------  --------           ------  -----------           -----
     1  NR      DISNEY W.           29.95        15.99            1.87
                                                                      
*SUB:   NR                          29.95        15.99            1.87
*REC:    1                          29.95        15.99            1.87
                                                                      
     2  NR      HITCHCOCK A.        19.98         9.00            2.22
                                                                      
*SUB:   NR                          19.98         9.00            2.22
                                                                      
        PG      HITCHCOCK A.        19.98         9.00            2.22
                HITCHCOCK A.        19.98         9.00            2.22
                                                                      
*SUB:   PG                          39.96        18.00            4.44
     2  PG13    HITCHCOCK A.        19.98         9.00            2.22
                                                                      
*SUB:   PG13                        19.98         9.00            2.22
                                                                      
        R       HITCHCOCK A.        19.98         9.00            2.22
                                                                      
*SUB:   R                           19.98         9.00            2.22
*REC:    2                          99.90        45.00            2.22
                                                                      
                                                                      
TOTAL                              129.85        60.99            2.13

Si revierte los campos BY, la línea del total general suma los valores de RATIO y los de LISTPR y WHOLESALEPR porque el comando SUBTOTAL controla la línea del total general:

TOTAL                              129.85        60.99           12.97

Puede cambiar la operación realizada al nivel del total general añadiendo el siguiente comando a la solicitud:

ON TABLE RECOMPUTE

La línea del gran total muestra entonces los valores recalculados:

TOTAL                              129.85        60.99            2.13

Principio de página

Ejemplo: Cómo utilizar SUBTOTAL con múltiples comandos de resumen

En la siguiente solicitud, el comando SUB-TOTAL propaga su operación al campo de clasificación DIRECTOR (vaya a la línea de total de HITCHCOCK, en que los valores de RATIO se subtotalizan, no se recalculan).

SUB-TOTAL no se propaga al campo de clasificación RATING, que tiene su propio comando RECOMPUTE, en tanto que se recalcula el valor correspondiente a RATIO de este campo de clasificación. La línea del total general se recalcula porque se ejecuta RECOMPUTE en un nivel más alto de campo de clasificación que SUB-TOTAL.

TABLE FILE MOVIES
PRINT LISTPR WHOLESALEPR
COMPUTE RATIO = LISTPR/WHOLESALEPR;
BY DIRECTOR
BY RATING
BY COPIES
WHERE COPIES LT 3
WHERE DIRECTOR EQ 'HITCHCOCK A.'
ON COPIES SUB-TOTAL AS '*SUB: '
ON RATING RECOMPUTE AS '*REC:  '
END

La salida es:

DIRECTOR           RATING  COPIES  LISTPR  WHOLESALEPR           RATIO
--------           ------  ------  ------  -----------           -----
HITCHCOCK A.       NR           2   19.98         9.00            2.22
                                                                      
*SUB:    2                          19.98         9.00            2.22
*REC:   NR                          19.98         9.00            2.22
                                                                      
                   PG           2   19.98         9.00            2.22
                                    19.98         9.00            2.22
                                                                      
*SUB:    2                          39.96        18.00            4.44
*REC:   PG                          39.96        18.00            2.22
                                                                      
                   PG13         2   19.98         9.00            2.22
*SUB:    2                          19.98         9.00            2.2
*REC:   PG13                        19.98         9.00            2.2
                                                                     
HITCHCOCK A.       R            2   19.98         9.00            2.2
                                                                     
*SUB:    2                          19.98         9.00            2.2
*REC:   R                           19.98         9.00            2.2
*TOTAL DIRECTOR HITCHCOCK A.        99.90        45.00           11.1
                                                                     
                                                                     
TOTAL                               99.90        45.00            2.2

Principio de página

Ejemplo: Cómo utilizar múltiples comandos de resumen con operadores de prefijo

La siguiente solicitud imprime el valor medio de LISTPR y el valor recalculado de RATIO en las líneas asociadas con el campo de clasificación RATING. El comando SUB-TOTAL asociado con el campo de clasificación COPIES se propaga a todos los campos en las líneas del campo de clasificación DIRECTOR y a las columnas WHOLESALEPR y RATIO1 asociadas con el campo de clasificación RATING. Para esta solicitud se elimina la línea del gran total.

TABLE FILE MOVIES
PRINT LISTPR WHOLESALEPR
COMPUTE RATIO/D6.2 = LISTPR/WHOLESALEPR;
COMPUTE RATIO1/D6.2 = LISTPR/WHOLESALEPR;
BY DIRECTOR
BY RATING
BY COPIES
WHERE COPIES LT 3
  WHERE DIRECTOR EQ 'KAZAN E.'
  ON RATING  RECOMPUTE  AVE. LISTPR  RATIO AS '*REC:  '
  ON COPIES  SUB-TOTAL                     AS '*SUB:  '
  ON TABLE NOTOTAL
END

En la salida:

La salida es:

DIRECTOR           RATING  COPIES  LISTPR  WHOLESALEPR   RATIO  RATIO1
--------           ------  ------  ------  -----------   -----  ------
KAZAN E.           NR           1   24.98        14.99    1.67    1.67
 
*SUB:    1                          24.98        14.99    1.67    1.67
 
                                2   19.95         9.99    2.00    2.00
 
*SUB:    2                          19.95         9.99    2.00    2.00
*REC:   NR                          22.46        24.98     .90    3.66
*TOTAL DIRECTOR KAZAN E.            44.93        24.98    3.66    3.66

Principio de página

Ejemplo: Propagación de comandos de resumen con listas de campo

En la siguiente solicitud, el comando RECOMPUTE tiene una lista de campos.

SET SUMMARYLINES = OLD
TABLE FILE MOVIES
PRINT LISTPR WHOLESALEPR
COMPUTE RATIO/D6.2 = LISTPR/WHOLESALEPR;
COMPUTE RATIO1/D6.2 = LISTPR/WHOLESALEPR;
BY DIRECTOR
BY RATING
BY COPIES
WHERE COPIES LT 3
  WHERE DIRECTOR EQ 'KAZAN E.'
  ON RATING RECOMPUTE LISTPR RATIO AS '*REC:  '
  ON COPIES SUB-TOTAL AS '*SUB:  '
END

Con SUMMARYLINES=OLD, sólo esos campos tienen valores en la salida de informe:

DIRECTOR           RATING  COPIES  LISTPR  WHOLESALEPR   RATIO  RATIO1
--------           ------  ------  ------  -----------   -----  ------
KAZAN E.           NR           1   24.98        14.99    1.67    1.67
 
*SUB:     1                         24.98                 1.67
 
                                2   19.95         9.99    2.00    2.00
 
*SUB:     2                         19.95                 2.00
*REC:   NR                          44.93                 1.80
*TOTAL DIRECTOR KAZAN E.            44.93                 3.66
 
 
TOTAL                               44.93                 1.80

Con SUMMARYLINES=NEW, SUB-TOTAL se propaga a todas las columnas que de otra forma no serían alimentadas. La línea del total general hereda el comando RECOMPUTE para los campos listados en su lista de campos, en tanto que el comando SUB-TOTAL se propaga a las demás columnas:

DIRECTOR           RATING  COPIES  LISTPR  WHOLESALEPR   RATIO  RATIO1
--------           ------  ------  ------  -----------   -----  ------
KAZAN E.           NR           1   24.98        14.99    1.67    1.67
 
*SUB:     1                         24.98        14.99    1.67    1.67
 
                                2   19.95         9.99    2.00    2.00
 
*SUB:     2                         19.95         9.99    2.00    2.00
*REC:   NR                          44.93        24.98    1.80    3.66
*TOTAL DIRECTOR KAZAN E.            44.93        24.98    3.66    3.66
 
 
TOTAL                               44.93        24.98    1.80    3.66

Principio de página

x
Referencia: Notas sobre el uso de combinaciones de comandos de resumen

WebFOCUS