Referencia: |
Un campo temporal es un campo cuyo valor no está almacenado en el origen de datos, pero que se puede calcular a partir de los datos que allí existen, o al que se le puede asignar un valor absoluto. Un campo temporal no ocupa espacio en el origen de datos y sólo se crea cuando es necesario.
Cuando crea un campo temporal, determina su valor mediante una expresión. Puede combinar campos, constantes y operadores en una expresión para producir un valor único. Por ejemplo, si sus datos contienen cantidades de salarios y desgravaciones podrá calcular la proporción de desgravaciones a salarios con esta expresión:
deduction / salary
Puede incluso especificar la expresión o puede usar una de las diferentes funciones disponibles que realizan cálculos o manipulaciones específicos. También puede usar expresiones y funciones como bloques de construcción para expresiones más complejas, al igual que usar un campo temporal para evaluar otro.
Puede utilizar dos tipos de campos temporales (un campo virtual y un valor calculado), que difieren en cuanto a su evaluación:
Un campo virtual (DEFINE) se evalúa a medida que cada registro que coincide con los criterios de selección indicados se recupera del origen de datos. El resultado de la expresión se trata como si fuera un verdadero campo almacenado en el origen de datos.
Un valor calculado (COMPUTE) se evalúa después de haberse recuperado, clasificado y sumado todos los datos que coinciden con los criterios de selección. Por lo tanto, el cálculo se realiza usando los valores agregados de los campos.
A continuación se muestra cómo se procesa una solicitud y cuándo se evalúa cada tipo de campo temporal:
En el ejemplo siguiente, los campos DRATIO (campo virtual) y CRATIO (valor calculado) utilizan la misma expresión DELIVER_AMT/OPENING_AMT, pero no arrojan los mismos resultados. El valor de CRATIO se calcula después de seleccionar, clasificar y agregar todos los registros. El campo virtual DRATIO se calcula para cada registro recuperado.
DEFINE FILE SALES DRATIO = DELIVER_AMT/OPENING_AMT; END TABLE FILE SALES SUM DELIVER_AMT AND OPENING_AMT AND DRATIO COMPUTE CRATIO = DELIVER_AMT/OPENING_AMT; END
La salida es:
La parte que aparece a continuación le ayudará a elegir el tipo de cambio temporal que necesita.
Escoja un campo temporal cuando quiera:
Escoja un valor calculado cuando quiera:
WebFOCUS |