Un valor calculado es un campo temporal que se evalúa después de que todos los datos que satisfacen los criterios de selección son recuperados, clasificados, y resumidos. Los valores calculados están disponibles sólo para la solicitud de informe especificada.
El comando COMPUTE se especifica en el cuerpo de la solicitud de informe, después del comando de visualización e introducido (opcional) por AND. Puede calcular más de un campo con un solo comando COMPUTE.
Los procesos siguientes se aplican al usar valores calculados:
ACROSS acrossfield [AND] COMPUTE compute_expression; COLUMNS values
COMPUTE fld [/format]= expression;[AS 'title'] [NOPRINT] [IN [+n]]
donde:
Puede ser cualquier cosa, siempre que sea compatible con las reglas de nomenclatura de campos WebFOCUS.
No use nombres de campo del tipo Cn, En y Xn (donde n es cualquier secuencia de uno o dos dígitos), porque están reservados para otros usos.
COMPUTE fld [/format]= ;
donde:
Puede ser cualquier cosa, siempre que sea compatible con las reglas de nomenclatura de campos WebFOCUS.
No use nombres de campo del tipo Cn, En y Xn (donde n es cualquier secuencia de uno o dos dígitos), porque están reservados para otros usos.
En el siguiente ejemplo, el comando COMPUTE crea un campo temporal REVENUE basado en el producto de UNIT_SOLD y RETAIL_PRICE y muestra esta información para la ciudad de New York. El formato D12.2M indica el formato de campo para REVENUE y el comando AS cambia los encabezados de columna predeterminados a UNIT_SOLD y RETAIL_PRICE. REVENUE está disponible solamente para esta solicitud de informe.
TABLE FILE SALES HEADING CENTER "NEW YORK PROFIT REPORT" " " SUM UNIT_SOLD AS 'UNITS,SOLD' RETAIL_PRICE AS 'RETAIL,PRICE' COMPUTE REVENUE/D12.2M = UNIT_SOLD * RETAIL_PRICE; BY PROD_CODE AS 'PROD,CODE' WHERE CITY EQ 'NEW YORK' END
La salida es:
NEW YORK PROFIT REPORT PROD UNITS RETAIL CODE SOLD PRICE REVENUE ---- ----- ------ ------- B10 30 $.85 $25.50 B17 20 $1.89 $37.80 B20 15 $1.99 $29.85 C13 15 $1.99 $29.85 C14 18 $2.05 $36.90 C17 12 $2.09 $25.08 D12 20 $2.09 $41.80 E1 30 $.89 $26.70 E2 33 $.99 $32.67 E3 35 $1.09 $38.15
En comandos COMPUTE, de vez en cuando resulta útil referirse a un campo por su posición de columna en el informe, en vez de por su nombre. Esta opción es especialmente útil cuando se especifica el mismo campo para diferentes columnas del informe.
La referencia a las columnas es esencial cuando se usa el mismo nombre de campo en una serie de formas. La siguiente imagen indica que puede hacer referencia a las columnas producidas por los comandos de visualización (aparezcan o no aparezcan) mediante C1, para la primera, C2 para la segunda, etc. No se cuentan las columnas de los campos BY.
Para más información sobre los números de referencia de columna, consulte Cómo asignar números de referencia de columna.
El ejemplo siguiente muestra referencias a campos posicionales en un comando COMPUTE:
TABLE FILE CAR SUM AVE.DEALER_COST SUM AVE.DEALER_COST AND COMPUTE RATIO=C1/C2; BY COUNTRY END
Las columnas producidas mediante comandos de visualización pueden denominarse C1, para la primera columna (AVE.DEALER_COST), C2, para la segunda, (AVE.DEALER_COST BY COUNTRY) y así sucesivamente. No se cuentan las columnas de los campos BY.
La salida es:
AVE AVE DEALER_COST COUNTRY DEALER_COST RATIO ----------- ------- ----------- ----- 7,989 ENGLAND 9,463 .84 FRANCE 4,631 1.73 ITALY 10,309 .77 JAPAN 2,756 2.90 W GERMANY 7,795 1.02
Si el comando COMPUTE se emite inmediatamente después de una frase ACROSS, se ejecuta un resumen del cálculo una sola vez para todas las columnas. COMPUTE se usa como parte de un comando de visualización, de manera que se calcula una nueva columna para cada conjunto de valores.
TABLE FILE SALES SUM UNIT_SOLD COMPUTE NEWVAL = UNIT_SOLD * RETAIL_PRICE; ACROSS CITY END
La primera página de salida es:
CITY NEW YORK NEWARK STAMFORD UNIONDALE UNIT_SOLD NEWVAL UNIT_SOLD NEWVAL UNIT_SOLD NEWVAL UNIT_SOLD NEWVAL -------------------------------------------------------------------------------- 162 1,764.18 42 104.16 376 4,805.28 65 297.70
En el siguiente comando COMPUTE C1, C2, C3, C4, C5, y C6 son referencias a columnas posicionales y el comando COMPUTE sigue a la frase ACROSS. Se ejecuta COMPUTE una vez para el informe y los resultados se muestran a la derecha de todos los grupos de clasificación.
TABLE FILE SALES SUM UNIT_SOLD AND RETURNS WHERE DATE GE '010' AND DATE LE '1031' ACROSS DATE COMPUTE TOT_UNITS/D5=C1 + C3 + C5; TOT_RETURNS = C2 + C4 + C6; END
La salida es:
DATE 10/17 10/18 10/19 TOT_UNITS TOT_RETURNS TOT_UNITS TOT_RETURNS UNIT_SOLD RETURNS UNIT_SOLD RETURNS UNIT_SOLD RETURNS ---------------------------------------------------------------------------------------------- 162 15 78 2 29 1 269 18.00
Puede clasificar un informe mediante un campo virtual o un valor calculado. Para clasificar mediante un valor calculado debe usar la frase BY TOTAL en su solicitud. Para obtener información detallada, consulte Cómo clasificar y agregar columnas de informes.
Puede filtrar valores calculados producidos con comandos COMPUTE mediante la prueba WHERE TOTAL, tal como se describe en Cómo seleccionar registros para su informe.
WebFOCUS |