Cómo incluir subtotales

Cómo:

Referencia:

Puede utilizar los comandos SUBTOTAL y SUB-TOTAL para resumir valores individuales, tales como columnas de números, cada vez que cambie el valor de un campo de clasificación identificado.

Tanto SUB-TOTAL como SUBTOTAL producen totales generales. Puede suprimir totales generales con el comando NOTOTAL. Consulte Cómo suprimir totales generales.

Se calcula el subtotal cada vez que cambia el valor de campo de clasificación o, si se aplican los criterios WHEN al campo de clasificación, cada vez que se satisfacen las condiciones WHEN.

Para iniciar la sintaxis se requiere una frase BY, ACROSS u ON.


Principio de página

x
Sintaxis: Cómo Crear subtotales
{BY|ON} fieldname {SUB-TOTAL|SUBTOTAL} [MULTILINES]
      [field1 [AND] field2...] [AS 'text'][WHEN expression;]

donde:

fieldname
Debe ser el nombre de un campo en una frase de clasificación. Una frase BY puede incluir un comando de resumen. El número de campos cuyo subtotal hay que determinar, multiplicado por el número de niveles de cuentas de subtotal en el número de campos de visualización permitidos por la solicitud. Para más detalles sobre cómo determinar el número máximo de campos de visualización en una solicitud, consulte Cómo mostrar datos de informes.
SUB-TOTAL|SUBTOTAL
SUB-TOTAL muestra subtotales para valores numéricos cuando cambian los valores del campo BY|ON así como para todos los campos de clasificación de nivel superior cuando cambian sus valores.

SUBTOTAL muestra un subtotal solamente cuando cambia el valor del campo de clasificación especificado.

MULTILINES
Elimina la impresión de una línea de subtotal por cada salto de clasificación que tiene sólo una línea de detalle, toda vez que el valor del subtotal es igual a este valor. Fíjese que MULTI-LINES es sinónimo de MULTILINES. No se admite MULTILINES con campos de clasificación horizontal (ACROSS).
field1, field2, ...
Indica una lista de campos específicos a los que calcular el subtotal. Esta lista anula a la predeterminada, que incluye todos los campos de visualización numéricos.

Puede usar el carácter comodín de asterisco (*) en lugar de una lista de campos para indicar que se incluya todos los campos, numéricos y alfanuméricos, en las líneas de resumen. Esto es obligatorio si desea que las columnas alfanuméricas aparezcan en las líneas de resumen, cuando SET SUMMARYLINES se encuentra establecido en OLD. En otros valores de SUMMARYLINES, puede usar el asterisco para mostrar todas las columnas o hacer referencia a columnas específicas que desee mostrar.

AS 'text'
Le permite especificar una etiqueta diferente. Para obtener información relacionada, consulte Cómo usar encabezados, pies, títulos y etiquetas.
WHEN expression
Especifica la visualización condicional de subtotales determinados por una expresión booleana. Debe terminar la expresión con punto y coma.

Principio de página

x
Sintaxis: Cómo Controlar la colocación de líneas de resumen
SET SUBTOTALS = {ABOVE|BELOW}

donde:

ABOVE
Coloca las líneas de resumen sobre las de detalle y muestra los valores de campos de clasificación en cada línea de detalle de la salida de informes.
BELOW
Coloca las líneas de resumen debajo de las líneas de detalle. BELOW es el valor predeterminado.

Note: SET SUBTOTALS = ABOVE no es compatible con el formato EXL2K FORMULA.



Ejemplo: Cómo colocar subtotales encima de los datos

La siguiente solicitud, basada en el origen de datos EMPLOYEE, suma las cantidades de las deducciones y salarios brutos por departamento, código de deducción y apellido. Después, calcula el subtotal de las cantidades de las deducciones y salarios brutos de cada departamento. La siguiente solicitud coloca los subtotales debajo de las líneas de detalle (por defecto):

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 salida es:

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

Es la misma solicitud, aunque con los subtotales colocados encima de las líneas de detalle:

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

En la salida, la línea de total general aparece en primer lugar, seguida del subtotal del departamento MIS, las líneas de detalle del departamento MIS, el subtotal del departamento PRODUCTION y sus líneas de de detalle, en este orden. Observe como los valores de los campos de clasificación aparecen en cada línea de la salida del informe:

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

Principio de página

x
Referencia: Notas sobre el uso de subtotales


Ejemplo: Cómo generar subtotales

La siguiente solicitud explica cómo crear un subtotal para SALES cada vez que cambie el valor del país.

TABLE FILE CAR
SUM AVE.MPG AND SALES AND AVE.RETAIL_COST
BY COUNTRY SUB-TOTAL SALES
BY BODYTYPE
END

La salida es:

                             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             


Ejemplo: Cómo comparar SUB-TOTAL y SUBTOTAL

La siguiente solicitud explica cómo crear un subtotal para los campos numéricos DED_AMT y GROSS cuando cambia el valor del departamento y para el campo de clasificación de nivel superior (DED_CODE), cuando cambia su valor.

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 utiliza SUBTOTAL en vez de SUB-TOTAL, los totales de DED_AMT y GROSS se muestran sólo cuando cambia el valor DEPARTMENT.

La primera porción de la salida es:

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 última porción de la salida es:

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