Sie können die MATCH-Verarbeitung mit den Befehlen PRINT und SUM feinabstimmen. Um die Unterschiede zwischen diesen beiden Befehlen zu verstehen, sollten Sie zunächst mit der 1:n-Beziehung vertraut sein: SUM erzeugt einen Datensatz aus vielen, während PRINT jeden Datensatz einzeln anzeigt. Durch die geeignete Auswahl von BY-Feldern ist es möglich, nur den SUM-Befehl zu verwenden, und dasselbe Ergebnis zu erzielen, das PRINT erzeugen würde.
Betrachten wir, um die Auswirkungen von PRINT und SUM auf die MATCH-Verarbeitung zu verdeutlichen, die Datenquellen A und B und die Anfragen, die folgen:
A B F1 F2 F3 F1 F4 F5 1 x 100 1 a 10 2 y 200 1 b 20 2 c 30 2 d 40
Anfrage 1: Diese Anfrage summiert die Felder F2 und F3 der Datei A, die Felder F4 und F5 der Datei B und verwendet F1 als das gemeinsame Sortierfeld der höheren Ebene.
MATCH FILE A SUM F2 AND F3 BY F1 RUN FILE B SUM F4 AND F5 BY F1 AFTER MATCH HOLD OLD-OR-NEW END
Die HOLD-Datei enthält die folgenden Daten:
F1 F2 F3 F4 F5 1 x 100 b 30 2 y 200 d 70
Beachten Sie, dass die sich ergebende Datei nur einen Datensatz für jedes gemeinsame Sortierfeld der höheren Ebene enthält.
Anfrage 2: Diese Anfrage summiert die Felder F2 und F3 der Datei A, druckt die Felder F4 und F5 der Datei B und verwendet F1 als das gemeinsame Sortierfeld der höheren Ebene.
MATCH FILE A SUM F2 AND F3 BY F1 RUN FILE B PRINT F4 AND F5 BY F1 AFTER MATCH HOLD OLD-OR-NEW END
Die HOLD-Datei enthält:
F1 F2 F3 F4 F5 1 x 100 a 10 1 x 100 b 20 2 y 200 c 30 2 y 200 d 40
Beachten Sie, dass die Datensätze der Datei A für jeden Datensatz der Datei B dupliziert werden.
Anfrage 3: Diese Anfrage druckt die Felder F2 und F3 der Datei A, summiert die Felder F4 und F5 der Datei B und verwendet F1 als das gemeinsame Sortierfeld der höheren Ebene.
MATCH FILE A PRINT F2 AND F3 BY F1 RUN FILE B SUM F4 AND F5 BY F1 AFTER MATCH HOLD OLD-OR-NEW END
Die HOLD-Datei enthält:
F1 F2 F3 F4 F5 1 x 100 b 30 2 y 200 d 70
Beachten Sie, dass jeder Datensatz der Datei A aber nur der letzte Datensatz der Datei B für jedes gemeinsame Sortierfeld der höheren Ebene aufgenommen wurde.
Anfrage 4: Diese Anfrage druckt die Felder F2 und F3 der Datei A und die Felder F4 und F5 der Datei B und verwendet F1 als das gemeinsame Sortierfeld der höheren Ebene.
MATCH FILE A PRINT F2 AND F3 BY F1 RUN FILE B PRINT F4 AND F5 BY F1 AFTER MATCH HOLD OLD-OR-NEW END
Die HOLD-Datei enthält:
F1 F2 F3 F4 F5 1 x 100 a 10 1 0 b 20 2 y 200 c 30 2 0 d 40
Beachten Sie, dass der Wert für F2 leer und für F3 eine Null ist.
Anfrage 5: Diese Anfrage summiert die Felder F2 und F3 der Datei A und das Feld F5 der Datei B und sortiert dieses nach F1, dem gemeinsamen Sortierfeld der höheren Ebene, und nach F4.
MATCH FILE A SUM F2 AND F3 BY F1 RUN FILE B SUM F5 BY F1 BY F4 AFTER MATCH HOLD OLD-OR-NEW END
Die HOLD-Datei enthält:
F1 F2 F3 F4 F5 1 x 100 a 10 1 x 100 b 20 2 y 200 c 30 2 y 200 d 40
Beachten Sie, dass alle Datensätze der Datei A, die auch in der Datei B vorkommen, gedruckt werden.
WebFOCUS |