Lorsque vous créez votre MATCH de afin que le premier critère de tri (BY) (appelé le critère de tri d'ordre supérieur commun) utilisé par les deux sources de données soit le même, le match compare les valeurs des critères de tri d'ordre supérieur communs. Si la série de critères de tri entière est commune aux deux fichiers, on compare tous les champs.
Au moins une paire de critères de tri est exigée. Les formats de champ doivent être les mêmes. Dans certains cas, vous pouvez redéfinir le format d'un champ en utilisant la commande DEFINE. Si les noms de champs diffèrent, utilisez la phrase AS pour renommer le deuxième critère de tri pour qu'il corresponde au premier critère de tri. Lorsque la phrase AS est utilisée dans une requête MATCH, le champ spécifié est renommé automatiquement dans le fichier HOLD résultant.
Lorsque vous fusionnez des fichiers comportant des critères de tri communs, les suppositions suivantes sont faites :
Pour mieux comprendre les critères de tri d'ordre supérieur, examinez quelques données des sources de données suivantes
Source de données EMPLOYEE |
Source de données EDUCFILE | ||
---|---|---|---|
EMP_ID |
LAST_NAME |
EMP_ID |
COURSE_CODE |
071382660 |
STEVENS |
071382660 |
101 |
119329144 |
BANNING |
212289111 |
103 |
112847612 |
SMITH |
112847612 |
103 |
et de cette requête MATCH :
MATCH FILE EMPLOYEE SUM LAST_NAME BY EMP_ID RUN FILE EDUCFILE SUM COURSE_CODE BY EMP_ID AFTER MATCH HOLD OLD-OR-NEW END
Le traitement MATCH s'effectue comme ce qui suit :
Record n: 071382660 STEVENS 101
Record n: 112847612 SMITH 103
Record n: 119329144 BANNING
Record n: 212289111 103
Le code suivant produit un rapport contenant les enregistrements du fichier HOLD :
TABLE FILE HOLD PRINT * END
La sortie est :
EMP_ID | LAST_NAME | COURSE_CODE |
071382660 | STEVENS | 101 |
112847612 | SMITH | 103 |
117593129 | JONES | 203 |
119265415 | SMITH | 108 |
119329144 | BANNING | |
123764317 | IRVING | |
126724188 | ROMANS | |
212289111 | 103 | |
219984371 | MCCOY | |
315548712 | 108 | |
326179357 | BLACKWOOD | 301 |
451123478 | MCKNIGHT | 101 |
543729165 | GREENSPAN | |
818692173 | CROSS | 302 |
Cette requête combine des données des sources de données EMPLOYEE et EMPDATA. Les critères de tri sont EID et PIN.
MATCH FILE EMPLOYEE PRINT LN FN DPT BY EID RUN FILE EMPDATA PRINT LN FN DEPT BY PIN AFTER MATCH HOLD OLD-OR-NEW END TABLE FILE HOLD PRINT * END
S'il n'y a aucuns critères de tri d'ordre supérieur, une correspondance s'effectue sur la base d'enregistrements individuels. La requête suivante fait correspondre les données et produit le fichier HOLD :
MATCH FILE EMPLOYEE PRINT LAST_NAME AND FIRST_NAME BY EMP_ID RUN FILE EMPDATA PRINT PIN BY LAST_NAME BY FIRST_NAME AFTER MATCH HOLD OLD-OR-NEW END TABLE FILE HOLD PRINT * END
Les enregistrements récupérés des deux sources de données sont inscrits dans le fichier HOLD ; aucune valeur n'est comparée. La sortie est :
EMP_ID | LAST_NAME | FIRST_NAME | LASTNAME | FIRSTNAME | PIN |
071382660 | STEVENS | ALFRED | ADAMS | RUTH | 000000040 |
112847612 | SMITH | MARY | ADDAMS | PETER | 000000050 |
117593129 | JONES | DIANE | ANDERSON | TIM | 000000100 |
119265415 | SMITH | RICHARD | BELLA | MICHAEL | 000000020 |
119329144 | BANNING | JOHN | CASSANOVA | LOIS | 000000030 |
123764317 | IRVING | JOAN | CASTALANETTA | MARIE | 000000270 |
126724188 | ROMANS | ANTHONY | CHISOLM | HENRY | 000000360 |
219984371 | MCCOY | JOHN | CONRAD | ADAM | 000000250 |
326179357 | BLACKWOOD | ROSEMARIE | CONTI | MARSHALL | 000000410 |
451123478 | MCKNIGHT | ROGER | CVEK | MARCUS | 000000130 |
543729165 | GREENSPAN | MARY | DONATELLO | ERICA | 000000320 |
818692173 | CROSS | BARBARA | DUBOIS | ERIC | 000000210 |
ELLNER | DAVID | 000000380 | |||
FERNSTEIN | ERWIN | 000000350 | |||
GORDON | LAURA | 000000180 | |||
GOTLIEB | CHRIS | 000000340 | |||
GRAFF | ELAINE | 000000390 | |||
HIRSCHMAN | ROSE | 000000160 | |||
KASHMAN | YOLANDA | 000000240 | |||
LASTRA | KAREN | 000000200 | |||
LEWIS | CASSANDRA | 000000220 | |||
. . . |
WebFOCUS |