Feinabstimmung für die MATCH-Verarbeitung

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.


Nach oben

Beispiel: Anzeigebefehle in der MATCH-Verarbeitung verwenden

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