Verkettete Datenquellen kombinieren

In diesem Abschnitt:

Vorgehensweise:

Sie können die MORE-Phrase in einer MATCH-Anfrage verwenden, um bis zu 16 Sets verketteter Datenquellen zu kombinieren.

Sie müssen alle Voraussetzungen für MATCH in der Hauptanfrage erfüllen. Alle Datenquellen, die kombiniert werden sollen, müssen nach mindestens einem Feld mit übereinstimmendem Format sortiert werden.

Die MATCH-Anfrage ergibt eine HOLD-Datei, in der die kombinierten Daten enthalten sind. Sie können bestimmen, wie nachfolgende Dateien kombiniert werden sollen, indem Sie einen AFTER MATCH-Befehl verwenden. Folgendes kann z. B. beibehalten werden:


Nach oben

x
Syntax: Verkettete Datenquellen kombinieren
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
  1. Startet das erste Antwortset in MATCH. File1 ist die erste Datenquelle im ersten Antwortset.
  2. Verkettet im ersten MATCH-Anwortset File2 mit File1.
  3. Verkettet im ersten MATCH-Anwortset File3 mit File1 und File2.
  4. Startet das zweite Antwortset in MATCH. File4 ist die erste Datenquelle im zweiten Antwortset.
  5. Alle Daten, die im ersten Antwortset verkettet wurden, werden mit den im zweiten Antwortset verketteten Daten kombiniert. Es wird im zweiten Antwortset die AFTER MATCH merge_phrase verwendet.
  6. Verkettet im zweiten MATCH-Antwortset file5 mit file4.
  7. Verkettet im zweiten MATCH-Antwortset file6 mit file4 und file5.
  8. Startet das dritte Antwortset in MATCH. File7 ist die erste Datenquelle im dritten Antwortset.
  9. Alle zusammengelegten Daten des ersten und zweiten Antwortsets, nun eine HOLD-Datei, werden mit den Daten zusammengelegt, die im dritten Antwortset verkettet wurden, indem im dritten Antwortset die AFTER MATCH merge_phrase verwendet wird. Dieses endgültige Set kombinierter Daten wird in einer HOLD-Datei gespeichert.
  10. Verkettet im dritten MATCH-Anwortset file8 mit file7.
  11. Verkettet im dritten MATCH-Anwortset file9 mit file7 und file8.

Nach oben

x
Sortierfelder in MATCH-Anfragen verwenden

Wenn die Datenquellen in MATCH Sortierfelder der höheren Ebene mit identischen Namen und Formaten gemeinsam verwenden, kombiniert der MATCH-Ablauf Datensätze mit übereinstimmenden Sortierfeldwerten in allen Dateien. Falls die beiden Datenquellen in MATCH dasselbe Sortierfeld mit unterschiedlichem Namen besitzen, können Sie einen der Namen mit einer AS-Phrase ändern.

Falls die Dateien in MATCH keine Sortierfelder der höheren Ebene gemeinsam verwenden, werden die Felder nicht verglichen. Stattdessen werden die Felder des ersten Datensatzes in jeder Datenquelle so kombiniert, dass sie den ersten Datensatz in der HOLD-Datei erstellen, usw. für alle verbleibenden Datensätze.



Beispiel: Verkettete Datenquellen mit übereinstimmenden Sortierfeldern der höheren Ebene kombinieren

Das folgende Beispiel verdeutlicht MATCH mit MORE, wobei ein überstimmendes Sortierfeld verwendet wird:

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
  1. Definiert die EMPDATA-Felder, die benötigt werden, um mit EMPLOYEE zu verketten.
  2. Startet MATCH und die Hauptanfrage der Verkettung. Die Hauptanfrage definiert, wie verkettete Dateien gedruckt und sortiert werden. Das Sortierfeld heißt in der resultierenden Datei SSN.
  3. Verkettet EMPDATA mit EMPLOYEE. Diese verkettete Datei wird in MATCH zur Datei OLD.
  4. Erstellt die Datei NEW in MATCH.
  5. Verwendet eine AS-Phrase, um den Namen des Sortierfeldes in der Datei NEW dem Namen des Sortierfeldes in der Datei OLD anzugleichen.
  6. Definiert die Kombinationsprozedur. Alle Datensätze aus der Datei NEW, aus der Datei OLD und aus beiden Dateien sind in der endgültigen HOLD-Datei enthalten.
  7. Druckt die Werte aus der kombinierten Datei.

Die erste Seite der Ausgabe ist:

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              .


Beispiel: Verkettete Datenquellen ohne übereinstimmende Sortierfelder kombinieren

In diesem Beispiel haben die kombinierten Datenquellen kein Sortierfeld gemein:

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

Die AS-Phrase ändert das Antwortset. Da die Sortierfelder nicht mehr denselben Namen haben, werden die Felder ohne Beachtung der übereinstimmenden Datensätze kombiniert.

Die erste Seite der Ausgabe ist:

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