In diesem Abschnitt: Vorgehensweise: |
Mit der universalen Verkettung können Sie Daten aus andersartigen Datenquellen mit nur einer Anfrage abrufen. Alle Daten werden scheinbar aus nur einer Datei abgerufen, unabhängig davon, um welche Quellen es sich handelt. Die Phrase MORE kann alle Datenquellentypen (wie z. B. FOCUS, DB2, IMS und VSAM) verketten, vorausgesetzt, dass diese entsprechende Felder mit demselben Format gemein haben. Sie können WHERE- und IF-Auswahltests in Zusammenhang mit MORE verwenden. Weitere Informationen zu diesem Thema finden Sie unter Datensätze für einen Report auswählen.
Sie müssen, um MORE verwenden zu können, Ihre Anfrage wie folgt unterteilen:
Während des Abrufs werden Daten aus allen Datenquellen nacheinander erfasst. Daraufhin werden alle Daten sortiert und die Ausgabe wird formatiert, wie es in der Hauptanfrage angegeben wurde.
Die MORE-Phrase, auf die in den Befehlen TABLE und MATCH zugegriffen werden kann, gibt an, wie Daten aus Datenquellen mit unähnlichen·Masterdateien verkettet werden können.
{TABLE|MATCH} FILE file1main request MORE FILE file2 subrequest MORE FILE file3 subrequest MORE . . . {END|RUN}
Hierbei gilt:
Steht am Anfang der Anfrage, die die Datenquellen verkettet.
Ist der Name der ersten Datenquelle.
Ist eine Anfrage ohne END oder RUN, die die erste Datenquelle abruft und die Datenfelder, Sortierkriterien und das Ausgabeformat für alle Daten definiert. WHERE- und IF-Kriterien in der Hauptanfrage gelten nur für file1.
Wenn Dateien innerhalb des TABLE-Befehls verkettet werden, können Sie außerdem berechnete Werte für die erste Datenquelle definieren.
Steht am Anfang einer Unteranfrage. Die Anzahl der Unteranfragen ist nicht beschränkt, außer durch verfügbaren Speicherplatz.
Definiert file2 als zweite Datenquelle für die Verkettung.
Ist eine Unteranfrage. Unteranfragen können nur WHERE- und IF-Phrasen enthalten.
Steht am Ende der Anfrage.
Sowohl die EMPLOYEE- als auch die EXPERSON-Datenquelle enthält Informationen über Angestellte. Ihre übereinstimmenden Daten können zu einer einzelnen Datei verkettet werden:
Die im Folgenden erörterte Anfrage verkettet die beiden Datenquellen:
DEFINE FILE EXPERSON 1. EMP_ID/A9 = SSN; CURR_SAL/D12.2 = WAGE; END 2. TABLE FILE EMPLOYEE PRINT CURR_SAL BY EMP_ID 3. MORE FILE EXPERSON END
Alle Felder, auf die in der Hauptanfrage verwiesen wird, müssen entweder in allen verketteten Dateien mit denselben Namen und Formaten vorhanden sein oder mit virtuellen Feldern diesen Namen und Formaten zugeordnet werden. Zu Feldern, auf die verwiesen wird, gehören jene in COMPUTE-Befehlen, Kopfzeilen, Aggregationsphrasen, Sortierphrasen und in den Befehlen PRINT, LIST, SUM, COUNT, WRITE oder ADD.
Für den erfolgreichen Abgleich von Formaten gilt Folgendes:
Verwendeter Formattyp |
Übereinstimmung |
---|---|
A |
Formattyp und Länge müssen übereinstimmen. |
I, F, D |
Der Formattyp muss übereinstimmen. |
P |
Formattyp und Skala müssen übereinstimmen. |
DATE (neu) |
Formatierungsinformationen (Typ, Länge, Komponenten und Reihenfolge) müssen immer übereinstimmen. |
DATE (alt) |
Bearbeitungsoptionen müssen übereinstimmen. |
DATE -TIME |
Formatierungsinformationen (Typ, Länge, Komponenten und Reihenfolge) müssen immer übereinstimmen. |
Textfelder (TX) und CLOB-Felder (falls unterstützt) können nicht verkettet werden.
Im folgenden Beispiel werden Daten der Datenquellen EMPDATA und SALHIST verkettet.
DEFINE FILE EMPDATA 1. NEWID/A11=EDIT (ID,'999-99-9999'); END DEFINE FILE SALHIST 2. NEWID/A11=EDIT (ID,'999-99-9999'); CSAL/D12.2M=OLDSALARY; END 3. TABLE FILE EMPDATA HEADING "EMPLOYEE SALARIES" " " PRINT CSAL BY NEWID 4. WHERE CSAL GT 65000 5. MORE FILE SALHIST 6. WHERE OLDSALARY GT 65000 END
Die Ausgabe ist:
EMPLOYEE SALARIES | |
NEWID | SALARY |
000-00-0030 | $70,000.00 |
$70,000.00 | |
000-00-0070 | $83,000.00 |
$83,000.00 | |
$79,100.00 | |
000-00-0200 | $115,000.00 |
$115,000.00 | |
$102,500.00 | |
$89,500.00 | |
000-00-0230 | $80,500.00 |
$80,500.00 | |
$75,000.00 | |
$70,800.00 | |
000-00-0300 | $79,000.00 |
$79,000.00 | |
$75,000.00 | |
$70,000.00 |
Wenn Sie Daten verketten, werden Datensatzreihen einfach hinzugefügt und nicht gruppiert oder über Dateien hinweg aggregiert. Daher werden duplizierte Sortierfelder, falls welche vorhanden sind, zweimal in der Reportausgabe angezeigt.
WebFOCUS |