En vez de teclear los valores de prueba literales en una frase WHERE o IF, puede almacenarlos en un archivo y haga referencia al archivo en la solicitud de informe. A partir de ese momento, puede seleccionar registros en base a pruebas de igualdad o desigualdad sobre los valores almacenados en el archivo.
Este método tiene las ventajas siguientes:
Si emplea un archivo HOLD, debe estar en formato BINARY (por defecto) o ALPHA (carácter sencillo). Si usa un archivo SAVE, debe estar en formato ALPHA (por defecto). También puede usar un archivo SAVB si los valores de selección son alfanuméricos. Para información acerca de archivos HOLD y SAVE, consulte Cómo guardar y reutilizar su salida de informes.
Tenga en cuenta que en z/OS, debe asignar un archivo HOLD en formato BINARY, utilizado para seleccionar valores, al ddname HOLD (por defecto). El resto de archivos de extracción usados con este fin, pueden asignarse a cualquier ddname.
WHERE [NOT] fieldname IN FILE file
donde:
Éste es el ddaname asigando por un comando DYNAM o TSO ALLOCATE en z/OS.
Para información relacionada, consulte Notas sobre el uso para leer valores de selección desde un archivo.
WHERE field1 operator1 (file1) [{OR|AND} field2 operator2 (file2) ... ]
donde:
Cualquier nombre o alias de campo válido.
Puede ser el operador EQ, IS, NE o IS-NOT.
Los nombres de estos archivos.
Estos son los ddnames asignados por un comando DYNAM o TSO ALLOCATE en z/OS.
IF fieldname operator (file) [OR (file) ... ]
donde:
Éste es el ddaname asigando por un comando DYNAM o TSO ALLOCATE en z/OS.
Para leer los criterios de selección desde un archivo, el archivo debe acatar las siguientes reglas:
Para IF, puede aparecer información adicional en una línea, pero sólo se usa el primer valor de datos encontrado en la línea.
Si su lista de literales es demasiado grande, se muestra un mensaje de error.
IF fieldname operator (filename) OR literal...etc...
Cómo generar un archivo nombrado EXPER, que contiene los valores B141 y B142.
Esta solicitud utiliza criterios de selección desde el archivo EXPER. Se seleccionan todos los registros para los que PRODUCT_ID tiene un valor de B141 o B142:
TABLE FILE GGPRODS SUM UNIT_PRICE BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID IN FILE EXPER END
Si incluye los criterios de selección directamente en su solicitud, la frase WHERE especifica los valores explícitamente:
WHERE PRODUCT_DESCRIPTION EQ 'B141' or 'B142'
La salida es:
Unit Product Price ------- ----- French Roast 81.00 Hazelnut 58.00
La siguiente solicitud, basada en el origen de datos GGPRODS, crea un archivo HOLD llamado EXPER1, que contiene los identificadores de producto B141, B142, B143 y B144.
TABLE FILE GGPRODS BY PRODUCT_ID BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID EQ 'B141' OR 'B142' OR 'B143' OR 'B144' ON TABLE HOLD AS EXPER1 FORMAT ALPHA END
La siguiente solicitud, basada en el origen de datos GGPRODS, crea un archivo HOLD llamado EXPER2, que contiene los identificadores de producto B144, F101 y F102.
TABLE FILE GGPRODS BY PRODUCT_ID BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID EQ 'B144' OR 'F101' OR 'F102' ON TABLE HOLD AS EXPER2 FORMAT ALPHA END
La siguiente solicitud selecciona los valores existentes de EXPER1 AND EXPER2.
TABLE FILE GGPRODS SUM PRODUCT_DESCRIPTION BY PRODUCT_ID WHERE PRODUCT_ID EQ (EXPER1) AND PRODUCT_ID IS (EXPER2) ON TABLE SET PAGE NOPAGE END
La salida es:
Product Code Product ------- ------- B144 Kona
Cómo generar un archivo nombrado EXPER, que contiene los valores B141 y B142.
Esta solicitud utiliza criterios de selección desde el archivo EXPER. Se seleccionan todos los registros para los que PRODUCT_ID tiene un valor de B141 o B142:
TABLE FILE GGPRODS SUM UNIT_PRICE BY PRODUCT_DESCRIPTION IF PRODUCT_ID IS (EXPER) END
Si incluye los criterios de selección directamente en la solicitud, la frase IF especifica los valores explícitamente:
IF PRODUCT_DESCRIPTION EQ 'B141' or 'B142'
La salida es:
Unit Product Price ------- ----- French Roast 81.00 Hazelnut 58.00
WebFOCUS |