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.
{BY|ON} fieldname {SUB-TOTAL|SUBTOTAL} [MULTILINES] [field1 [AND] field2...] [AS 'text'][WHEN expression;]
donde:
SUBTOTAL muestra un subtotal solamente cuando cambia el valor del campo de clasificación especificado.
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.
SET SUBTOTALS = {ABOVE|BELOW}
donde:
Note: SET SUBTOTALS = ABOVE no es compatible con el formato EXL2K FORMULA.
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
BY AREA BY PROD_CODE BY DATE SUB-TOTAL
cuando AREA cambia, los subtotales de DATE, PROD_CODE y AREA aparecen en tres líneas (una debajo de otra).
Nota: ON BYfield SUBFOOT sólo se aplica en al nivel especificado.
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
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 |