Vorgehensweise:
Referenz: |
Sie können literale Testwerte, anstatt sie in eine WHERE- oder IF-Phrase einzugeben, in einer Datei speichern und auf die Datei in der Reportanfrage verweisen. Sie können dann Datensätze basierend auf Gleichheits- oder Ungleichheitstests, die mit den Werten, die in der Datei gespeichert sind, durchgeführt wurden, auswählen.
Diese Methode hat folgende Vorteile:
Wenn Sie eine HOLD-Datei verwenden, muss diese entweder im BINARY-Format (der Default) oder im ALPHA-Format (einfache Zeichen) sein. Wenn Sie eine SAVE-Datei verwenden, muss diese im ALPHA-Format (der Default) sein. Sie können auch eine SAVB-Datei verwenden, falls die Auswahlwerte alphanumerisch sind. Informationen zu HOLD- und SAVE-Dateien finden Sie unter Ihre Reportausgabe speichern und wiederverwenden.
Beachten Sie, dass in z/OS eine HOLD-Datei im BINARY-Format, die für Auswahlwerte verwendet wird, dem ddname HOLD (der Default) zugewiesen werden muss. Die anderen Extrahierungsdateien, die für diesen Zweck verwendet werden, können einem beliebigen ddname zugewiesen werden.
WHERE [NOT] fieldname IN FILE file
Hierbei gilt:
Dies ist der ddname, der zugewiesen wird von einem DYNAM- oder TSO ALLOCATE-Befehl für z/OS.
Weitere Informationen zu diesem Thema finden Sie unter Verwendungshinweise für das Lesen von Werten aus einer Datei.
WHERE field1 operator1 (file1) [{OR|AND} field2 operator2 (file2) ... ]
Hierbei gilt:
Sind gültige Feldnamen oder Aliase.
Kann einer der folgenden Operatoren sein: EQ, IS, NE oder IS-NOT.
Sie die Namen der Dateien.
Dies sind die ddnames, die zugewiesen werden von einem DYNAM- oder TSO ALLOCATE-Befehl für z/OS.
IF fieldname operator (file) [OR (file) ... ]
Hierbei gilt:
Dies ist der ddname, der zugewiesen wird von einem DYNAM- oder TSO ALLOCATE-Befehl für z/OS.
Die Datei muss die folgenden Regeln erfüllen, damit aus ihr Auswahlkriterien gelesen werden können:
Bei IF können sich zwar in der Zeile weitere Informationen befinden, es wird jedoch nur der erste Datenwert verwendet.
Es wird eine Fehlermeldung angezeigt, wenn Ihre Liste mit Literalen zu lang ist.
IF fieldname operator (filename) OR literal...etc...
Erstellen Sie eine Datei namens EXPER, die die Werte B141 und B142 enthält.
Diese Anfrage verwendet Auswahlkriterien aus der EXPER-Datei. Alle Datensätze, in denen der Wert für PRODUCT_ID B141 oder B142 ist, werden ausgewählt:
TABLE FILE GGPRODS SUM UNIT_PRICE BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID IN FILE EXPER END
Wenn Sie die Auswahlkriterien direkt in die Anfrage aufnehmen, gibt die WHERE-Phrase die Werte explizit an:
WHERE PRODUCT_DESCRIPTION EQ 'B141' or 'B142'
Die Ausgabe ist:
Unit Product Price ------- ----- French Roast 81.00 Hazelnut 58.00
Die folgende Anfrage mit der GGPRODS-Datenquelle erstellt eine HOLD-Datei namens EXPER1, die die Produkt-IDs B141, B142, B143 und B144 enthält.
TABLE FILE GGPRODS BY PRODUCT_ID BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID EQ 'B141' OR 'B142' OR 'B143' OR 'B144' ON TABLE HOLD AS EXPER1 FORMAT ALPHA END
Die folgende Anfrage mit der GGPRODS-Datenquelle erstellt eine HOLD-Datei namens EXPER2, die die Produkt-IDs B144, F101 und F102 enthält.
TABLE FILE GGPRODS BY PRODUCT_ID BY PRODUCT_DESCRIPTION WHERE PRODUCT_ID EQ 'B144' OR 'F101' OR 'F102' ON TABLE HOLD AS EXPER2 FORMAT ALPHA END
Die folgende Anfrage wählt die Werte aus, die in EXPER1 AND EXPER2 vorhanden sind.
TABLE FILE GGPRODS SUM PRODUCT_DESCRIPTION BY PRODUCT_ID WHERE PRODUCT_ID EQ (EXPER1) AND PRODUCT_ID IS (EXPER2) ON TABLE SET PAGE NOPAGE END
Die Ausgabe ist:
Product Code Product ------- ------- B144 Kona
Erstellen Sie eine Datei namens EXPER, die die Werte B141 und B142 enthält.
Diese Anfrage verwendet Auswahlkriterien aus der EXPER-Datei. Alle Datensätze, in denen der Wert für PRODUCT_ID B141 oder B142 ist, werden ausgewählt:
TABLE FILE GGPRODS SUM UNIT_PRICE BY PRODUCT_DESCRIPTION IF PRODUCT_ID IS (EXPER) END
Wenn Sie die Auswahlkriterien direkt in die Anfrage aufnehmen, gibt die IF-Phrase die Werte explizit an:
IF PRODUCT_DESCRIPTION EQ 'B141' or 'B142'
Die Ausgabe ist:
Unit Product Price ------- ----- French Roast 81.00 Hazelnut 58.00
WebFOCUS |