Cómo describir un valor calculado: COMPUTE

Cómo:

Referencia:

Los comandos COMPUTE pueden incluirse en archivos máster, y aparecer citados en solicitudes TABLE posteriores, lo que le permite construir las expresiones una vez y usarlas en distintas solicitudes.


Principio de página

x
Sintaxis: Cómo Incluir un comando COMPUTE en un archivo máster
COMPUTE fieldname/fmt=expression;

donde:

fieldname

Es el nombre del campo calculado.

fmt

Es el formato y la longitud del campo calculado.

expression

Es la fórmula para calcular el valor del campo.


Principio de página

x
Referencia: Notas de uso de COMPUTE en un archivo máster

En todos los casos, los COMPUTEs de un archivo máster presentan la misma funcionalidad y limitaciones que los COMPUTEs temporales. Concretamente, los campos calculados en el archivo máster, deben seguir estas reglas:

Nota: Actualmente, WebFOCUS Maintain no admite el uso de COMPUTEs en archivos máster y, por tanto, COMPUTE no aparece en el Asistente de actualizaciones.



Ejemplo: Cómo codificar un COMPUTE en el archivo máster y acceder al valor calculado

Use la sintaxis estándar de COMPUTE, para añadir un valor calculado a su archivo máster. Para acceder al valor calculado, haga referencia al nombre del campo calculado en las solicitudes TABLE posteriores. Si se emplea como objeto de un verbo, igual que en este ejemplo, la sintaxis es el campo SUM (o PRINT) o el campo COMPUTE.

A continuación le mostramos el archivo máster SALESTES (el archivo SALES FILE, modificado con un COMPUTE insertado):

FILENAME=SALESTES, SUFFIX=FOC,
SEGNAME=STOR_SEG, SEGTYPE=S1,
   FIELDNAME=STORE_CODE,  ALIAS=SNO,  FORMAT=A3,   $
   FIELDNAME=CITY,        ALIAS=CTY,  FORMAT=A15,  $
   FIELDNAME=AREA,        ALIAS=LOC,  FORMAT=A1,   $
 
SEGNAME=DATE_SEG, PARENT=STOR_SEG, SEGTYPE=SH1,
   FIELDNAME=DATE,        ALIAS=DTE,  FORMAT=A4MD, $
 
SEGNAME=PRODUCT, PARENT=DATE_SEG, SEGTYPE=S1,
   FIELDNAME=PROD_CODE,     ALIAS=PCODE,   FORMAT=A3,    FIELDTYPE=I, $
   FIELDNAME=UNIT_SOLD,     ALIAS=SOLD,    FORMAT=I5,    $
   FIELDNAME=RETAIL_PRICE,  ALIAS=RP,      FORMAT=D5.2M, $
   FIELDNAME=DELIVER_AMT,   ALIAS=SHIP,    FORMAT=I5,    $
   FIELDNAME=OPENING_AMT,   ALIAS=INV,     FORMAT=I5,    $
   FIELDNAME=RETURNS,       ALIAS=RTN,     FORMAT=I3,    MISSING=ON, $
   FIELDNAME=DAMAGED,       ALIAS=BAD,     FORMAT=I3,    MISSING=ON, $
 
   COMPUTE REVENUE/D12.2M=UNIT_SOLD*RETAIL_PRICE;

La siguiente solicitud TABLE usa el campo REVENUE:

TABLE FILE SALESTES
HEADING CENTER
"NEW YORK PROFIT REPORT"
" "
SUM UNIT_SOLD AS 'UNITS,SOLD' RETAIL_PRICE AS 'RETAIL_PRICE'
COMPUTE REVENUE;
BY PROD_CODE AS 'PROD,CODE'
WHERE CITY EQ 'NEW YORK'
END

La salida es:

           NEW YORK PROFIT REPORT
 
  PROD  UNITS
  CODE  SOLD   RETAIL_PRICE          REVENUE
  ----  ----   ------------          -------
  B10      30          $.85           $25.50
  B17      20         $1.89           $37.80
  B20      15         $1.99           $29.85
  C17      12         $2.09           $25.08
  D12      20         $2.09           $41.80
  E1       30          $.89           $26.70
  E3       35         $1.09           $38.15


WebFOCUS