En esta sección: Cómo: |
Puede usar la frase MORE en una solicitud MATCH para fusionar hasta dieciséis conjuntos de orígenes de datos concatenados.
Debe reunir todos los requisitos MATCH en la solicitud principal. Todos los orígenes de datos a fusionarse deben estar organizados por al menos un campo con un formato en común.
La solicitud MATCH resulta en un archivo HOLD que contiene los datos fusionados. Puede especificar cómo desea fusionar cada archivo sucesivo utilizando un comando AFTER MATCH. Por ejemplo, puede retener:
1. MATCH FILE file1main request MORE 2. FILE file2subrequest MORE 3. FILE file3subrequest RUN 4. FILE file4main request 5. [AFTER MATCH merge_phrase] MORE 6. FILE file5subrequest MORE 7. FILE file6subrequest RUN 8. FILE file7main request 9. [AFTER MATCH merge_phrase] MORE 10.FILE file8subrequest MORE 11.FILE file9subrequest END
Si los orígenes de datos en MATCH comparten los campos comunes de clasificación de orden elevado y los formatos, el proceso MATCH fusiona registros con valores de campo de clasificación coincidente desde cada uno de los archivos. Si los dos orígenes de datos en el MATCH tienen el mismo campo de clasificación con nombres diferentes, puede cambiar uno de los nombres con una frase AS.
Si los archivos en el MATCH no comparten un campo de clasificación de orden elevado, los campos no se comparan. En cambio, los campos dEl primero registro en cada uno de los orígenes de campos se fusionan para crear el primer registro en el archivo HOLD y así seguidamente para todos los registros restantes.
El procedimiento de ejemplo almacenado comentado a continuación ilustra MATCH con MORE, utilizando un campo común de clasificación:
1. DEFINE FILE EMPDATA CURR_SAL/D12.2M = CSAL; FIRST_NAME/A10 = FN; EID/A9 = PIN; END -*Start MATCH. 2. MATCH FILE EMPLOYEE SUM CURR_SAL AS 'CURRENT' FIRST_NAME AS 'FIRST' BY EID AS 'SSN' -*Concatenate file EMPDATA to EMPLOYEE to form first MATCH answer set. 3. MORE FILE EMPDATA RUN -*Second MATCH answer set: 4. FILE TRAINING PRINT EXPENSES 5. BY PIN AS 'SSN' 6. AFTER MATCH HOLD OLD-OR-NEW END -*Print merged file: 7. TABLE FILE HOLD PRINT * END
La primera página de salida es:
SSN CURRENT FIRST EXPENSES --- ------- ----- -------- 000000010 $55,500.00 DANIEL 2,300.00 000000020 $62,500.00 MICHAEL . 000000030 $70,000.00 LOIS 2,600.00 000000030 $70,000.00 LOIS 2,300.00 000000040 $62,500.00 RUTH 3,400.00 000000050 $54,100.00 PETER 3,300.00 000000060 $55,500.00 DORINA . 000000070 $83,000.00 EVELYN . 000000080 $43,400.00 PAMELA 3,200.00 000000080 $43,400.00 PAMELA 3,350.00 000000090 $33,000.00 MARIANNE . 000000100 $32,400.00 TIM 3,100.00 000000110 $19,300.00 ANTHONY 1,800.00 000000110 $19,300.00 ANTHONY 2,500.00 000000110 $19,300.00 ANTHONY 2,400.00 000000120 $49,500.00 KATE 2,200.00 000000130 $62,500.00 MARCUS .
En este ejemplo, los orígenes de datos fusionados no comparten un campo de clasificación:
DEFINE FILE EMPDATA CURR_SAL/D12.2M = CSAL; FIRST_NAME/A10 = FN; EID/A9 = PIN; END -*Start MATCH MATCH FILE EMPLOYEE SUM CURR_SAL AS 'CURRENT' FIRST_NAME AS 'FIRST' BY EID AS 'SSN' -*Concatenate EMPDATA to EMPLOYEE to form the first MATCH answer set MORE FILE EMPDATA RUN -*Second MATCH answer set: FILE TRAINING PRINT EXPENSES BY PIN AS 'EID' AFTER MATCH HOLD OLD-OR-NEW END -*Print merged file: TABLE FILE HOLD PRINT * END
La frase AS cambia el conjunto de respuestas. Dado que los campos de clasificación ya no tienen los mismos nombres, los campos se fusionan sin consideración a los registros coincidentes.
La primera página de salida es:
SSN CURRENT FIRST EID EXPENSES --- ------- ----- --- -------- 000000010 $55,500.00 DANIEL 000000010 2,300.00 000000020 $62,500.00 MICHAEL 000000030 2,600.00 000000030 $70,000.00 LOIS 000000030 2,300.00 000000040 $62,500.00 RUTH 000000040 3,400.00 000000050 $54,100.00 PETER 000000050 3,300.00 000000060 $55,500.00 DORINA 000000080 3,200.00 000000070 $83,000.00 EVELYN 000000080 3,350.00 000000080 $43,400.00 PAMELA 000000100 3,100.00 000000090 $33,000.00 MARIANNE 000000110 1,800.00 000000100 $32,400.00 TIM 000000110 2,500.00 000000110 $19,300.00 ANTHONY 000000110 2,400.00 000000120 $49,500.00 KATE 000000120 2,200.00 000000130 $62,500.00 MARCUS 000000140 3,600.00 000000140 $62,500.00 VERONICA 000000150 3,400.00 000000150 $40,900.00 KARL 000000160 1,000.00 000000160 $62,500.00 ROSE 000000180 1,250.00 000000170 $30,800.00 WILLIAM 000000190 3,150.00
WebFOCUS |