Wenn Sie MATCH so einrichten, dass das erste Sortierfeld (BY) (übereinstimmendes Sortierfeld der höheren Ebene genannt) beider Datenquellen dasselbe ist, werden die Werte der übereinstimmenden Sortierfelder der höheren Ebene verglichen. Wenn die gesamte Sortierfeldreihe für beide Dateien gleich ist, werden alle verglichen.
Es wird mindestens ein Sortierfeldpaar benötig. Die Feldformate müssen gleich sein. In manchen Fällen können Sie ein Feldformat neu definieren, indem Sie den Befehl DEFINE verwenden. Verwenden Sie, wenn sich die Namen der Felder unterscheiden, die AS-Phrase, um das zweite Sortierfeld wie das erste zu benennen. Wenn die AS-Phrase in einer MATCH-Anfrage verwendet wird, wird das angegebene Feld in der resultierenden HOLD-Datei automatisch neu benannt.
Wenn Sie Dateien mit übereinstimmenden Sortierfeldern kombinieren, wird Folgendes angenommen:
Beachten Sie, um übereinstimmende Sortierfelder der höheren Ebene besser zu verstehen, manche der Daten aus den folgenden Datenquellen:
EMPLOYEE-Datenquelle |
EDUCFILE-Datenquelle | ||
---|---|---|---|
EMP_ID |
LAST_NAME |
EMP_ID |
COURSE_CODE |
071382660 |
STEVENS |
071382660 |
101 |
119329144 |
BANNING |
212289111 |
103 |
112847612 |
SMITH |
112847612 |
103 |
und diese MATCH-Anfrage:
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
MATCH-Verarbeitung verläuft folgendermaßen:
Record n: 071382660 STEVENS 101
Record n: 112847612 SMITH 103
Record n: 119329144 BANNING
Record n: 212289111 103
Der folgende Code erstellt einen Report aus den Datensätzen in der HOLD-Datei:
TABLE FILE HOLD PRINT * END
Die Ausgabe ist:
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 |
Diese Anfrage kombiniert Daten der Datenquellen EMPLOYEE und EMPDATA. Die Sortierfelder sind EID und 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
Falls keine übereinstimmende Sortierfelder der höheren Ebene vorhanden sind, werden Übereinstimmungen von Datensatz zu Datensatz gesucht. Die folgende Anfrage stellt die Daten gegenüber und erstellt die HOLD-Datei:
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
Die aus den beiden Datenquellen abgerufenen Datensätze werden in die HOLD-Datei geschrieben. Es werden keine Werte verglichen. Die Ausgabe ist:
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 |