Auswahl basierend auf individuellen Werten

In diesem Abschnitt:

Vorgehensweise:

Referenz:

Die WHERE-Phrase wählt aus der Datenquelle die Datensätze aus, die in den Report aufgenommen werden sollen. Die Daten werden anhand der Auswahlkriterien überprüft, bevor sie aus der Datenquelle abgerufen werden.

Sie können so viele WHERE-Phrasen verwenden wie es für das Definieren Ihrer Auswahlkriterien nötig ist. Eine Abbildung finden Sie unter Mehrere WHERE-Phrasen verwenden. Weitere Informationen zu diesem Thema finden Sie unter Zusammengesetzte Formeln für die Datensatzauswahl verwenden.

Hinweis: Mehrere Auswahltests für Felder, die sich auf unterschiedlichen Pfaden einer Mehrpfad-Datenquelle befinden, werden so verarbeitet, als wären sie durch AND- oder OR-Operatoren verbunden. Dies hängt von der Einstellung des Parameters namens MULTIPATH ab. Genaueres finden Sie unter Die Datensatzauswahl in Mehrpfad-Datenquellen steuern.


Nach oben

x
Syntax: Datensätze mit WHERE auswählen
WHERE criteria [;]

Hierbei gilt:

criteria
Sind die Kriterien für die Auswahl von Datensätzen für den Report. Die Kriterien müssen in einer gültigen Formel definiert werden, die wahr (true) oder falsch (false) auswertet (d.h. eine boolesche Formel). Formeln werden in Formeln verwenden ausführlich beschrieben. Operatoren, die in WHERE-Formeln verwendet werden können (wie z. B. CONTAINS, IS und GT) werden in Für WHERE- und IF-Tests unterstützte Operatoren beschrieben.
;
Ist ein optionales Semikolon, das verwendet werden kann, um die Lesbarkeit der Anfrage zu erhöhen. Es beeinflusst den Report nicht.

Nach oben

x
Referenz: Verwendungshinweise für WHERE-Phrasen

Die WHERE-Phrase kann Folgendes enthalten:

Sie können komplexe Auswahlkriterien erstellen, indem Sie einfache Formeln mit den logischen Operatoren AND oder OR verknüpfen und optional Klammern hinzufügen, um ausdrücklich die Reihenfolge der Auswertung anzugeben. Diese Vorgehensweise ist einfacher, als dafür die IF-Phrase zu verwenden, da diese ggf. die Verwendung eines separaten DEFINE-Befehls erfordert. Genaueres finden Sie unter Zusammengesetzte Formeln für die Datensatzauswahl verwenden.



Beispiel: Einen einfachen WHERE-Test verwenden

Geben Sie, um nur die Namen und Gehälter von Angestellten anzuzeigen, die mehr als $20.000 im Jahr verdienen, folgende Anfrage ein:

TABLE FILE EMPLOYEE
PRINT LAST_NAME AND FIRST_NAME AND CURR_SAL
BY LAST_NAME NOPRINT
WHERE CURR_SAL GT 20000
END

In diesem Beispiel ist CURR_SAL ein ausgewähltes Feld und CURR_SAL GT 20000 ist das Auswahlkriterium. Nur die Datensätze mit einem derzeitigen Gehalt von mehr als $20.000 werden abgerufen. Alle anderen Datensätze werden ignoriert.

Die Ausgabe ist:



Beispiel: Mehrere WHERE-Phrasen verwenden

Sie können so viele WHERE-Phrasen verwenden wie es für das Definieren Ihrer Auswahlkriterien nötig ist. Diese Anfrage verwendet mehrere WHERE-Phrasen, so dass nur die Angestellten in der MIS- oder Produktionsabteilung mit dem Nachnamen Cross oder Banning in den Report aufgenommen werden.

TABLE FILE EMPLOYEE
PRINT EMP_ID LAST_NAME
WHERE SALARY GT 20000
WHERE DEPARTMENT IS 'MIS' OR 'PRODUCTION'
WHERE LAST_NAME IS 'CROSS' OR 'BANNING'
END

Die Ausgabe ist:

Weitere Informationen zu diesem Thema finden Sie unter Zusammengesetzte Formeln für die Datensatzauswahl verwenden.


Nach oben

x
Die Datensatzauswahl in Mehrpfad-Datenquellen steuern

Vorgehensweise:

Referenz:

Bei der Reporterstellung einer Mehrpfad-Datenquelle kann ein übergeordnetes Segment untergeordnete Segmente ein paar Pfade weiter unten haben, andere aber nicht. Der Parameter MULTIPATH ermöglicht es Ihnen zu steuern, ob ein solches übergeordnetes Segment von der Reportausgabe ausgeschlossen wird.

Die Einstellung von MULTIPATH wirkt sich auch auf die Verarbeitung von Auswahltests auf unabhängigen Pfaden aus. Stellt man MULTIPATH auf:

Die MULTIPATH-Einstellungen gelten für alle Datenquellentypen und in allen Reportumgebungen (TABLE, TABLEF, MATCH, GRAPH und Anfragen mit mehreren Anzeigebefehlen). MULTIPATH funktioniert auch mit alternativen Ansichten, indizierten Ansichten, Filtern, DBA und verbundenen Strukturen.



x
Syntax: Die Datensatzauswahl in Mehrpfad-Datenquellen steuern

Verwenden Sie, um MULTIPATH in der Befehlsebene oder in einer gespeicherten Prozedur einzustellen

SET MULTIPATH = {SIMPLE|COMPOUND}

Verwenden Sie, um MULTIPATH in einer Reportanfrage einzustellen

ON TABLE SET MULTIPATH {SIMPLE|COMPOUND}

Hierbei gilt:

SIMPLE
Enthält in der Reportausgabe ein übergeordnetes Segment, wenn:
  • Mindestens ein untergeordnetes Segment die Auswahlbedingung erfüllt.

    Hinweis: Ein eindeutiges Segment wird als Teil des übergeordneten Segments angesehen und bewirkt daher keine unabhängige Pfadverarbeitung.

  • Es verweist auf kein untergeordnetes Segment in einem Pfad. Das untergeordnete Segment ist jedoch optional.

    Die (FOC144)-Warnmeldung wird erzeugt, wenn eine Anfrage Daten in einem Mehrpfadreport filtert:

    (FOC144) WARNING. TESTING IN INDEPENDENT SETS OF DATA
COMPOUND
Enthält ein übergeordnetes Segment in der Reportausgabe, falls alle benötigten untergeordneten Segmente vorhanden sind. WHERE- oder IF-Tests für separate Pfade werden behandelt, als wären Sie mit einem AND-Operator verbunden. Das heißt, dass alle Pfade die Auswahlkriterien erfüllen müssen, damit das übergeordnete Segment in die Reportausgabe aufgenommen wird. COMPOUND ist der Defaultwert.

Zugehörige Informationen finden Sie unter Kombinationen aus MULTIPATH und SET ALL und Regeln, um zu bestimmen, ob ein Segment benötigt wird.



x
Referenz: Voraussetzungen und Verwendungshinweise für MULTIPATH = COMPOUND


Beispiel: Daten von mehreren Pfaden abrufen

Dieses Beispiel verwendet die folgenden Segmente aus der Datenquelle EMPLOYEE:

Die darauf folgende Anfrage ruft Daten von beiden Pfaden mit MULTIPATH = SIMPLE ab und zeigt diese an, falls eines der Kriterien erfüllt wurde:

SET ALL = OFF
SET MULTIPATH = SIMPLE
TABLE FILE EMPLOYEE 
PRINT GROSS DATE_ATTEND COURSE_NAME
BY LAST_NAME BY FIRST_NAME
WHERE PAY_DATE EQ 820730
WHERE COURSE_CODE EQ '103'
END

Die folgende Warnmeldung wird ausgegeben:

(FOC144) WARNING. TESTING IN INDEPENDENT SETS OF DATA

Obwohl manche Angestellten keinen Kurs belegt haben, sind sie in der Reportausgabe enthalten, da für sie Instanzen auf einem der beiden Pfade vorhanden sind.

Die Ausgabe ist:

Wenn Sie die gleiche Anfrage mit MULTIPATH = COMPOUND ausführen, werden die Angestellten ohne Instanzen für COURSE_NAME in der Reportausgabe weggelassen, und die Warnmeldung wird nicht ausgegeben.

Die Ausgabe ist:

LAST_NAME       FIRST_NAME            GROSS  DATE_ATTEND  COURSE_NAME      
---------       ----------            -----  -----------  -----------      
JONES           DIANE             $1,540.00     82/05/26  BASIC REPORT PREP FOR PROG
SMITH           MARY              $1,100.00     81/11/16  BASIC REPORT PREP FOR PROG


x
Referenz: Kombinationen aus MULTIPATH und SET ALL

Der Parameter ALL beeinflusst die Verarbeitung unabhängiger Pfade. Die folgende Tabelle verwendet Beispiele aus der Datenquelle EMPLOYEE, um die Interaktion von ALL und MULTIPATH zu beschreiben.

Anfrage

MULTIPATH=SIMPLE

MULTIPATH=COMPOUND

SET ALL = OFF
PRINT EMP_ID PAY_DATE DATE_ATTEND

Zeigt Angestellte an, für die entweder SALINFO- oder ATTNDSEG-Daten vorliegen.

Zeigt Angestellte an, für die sowohl SALINFO- als auch ATTNDSEG-Daten vorliegen.

SET ALL = ON
PRINT EMP_ID PAY_DATE DATE_ATTEND

Zeigt Angestellte an, für die SALINFO-Daten oder ATTNDSEG-Daten oder keine untergeordneten Daten vorliegen.

Dasselbe wie SIMPLE.

SET ALL = OFF
PRINT EMP_ID PAY_DATE DATE_ATTEND
WHERE PAY_DATE EQ 980115

Zeigt Angestellte an, für die entweder SALINFO-Daten für 980115 oder ATTNDSEG-Daten vorliegen.

Erzeugt eine Meldung (FOC144).

Zeigt Angestellte an, für die sowohl SALINFO-Daten für 980115 als auch ATTNDSEG-Daten vorliegen.

SET ALL = ON
PRINT EMP_ID PAY_DATE DATE_ATTEND
WHERE PAY_DATE EQ 980115

Zeigt Angestellte an, für die entweder SALINFO-Daten für 980115 oder ATTNDSEG-Daten vorliegen.

Erzeugt eine Meldung (FOC144).

Zeigt Angestellte an, für die SALINFO-Daten für 980115 vorliegen. Alle DATE_ATTEND-Daten werden ebenfalls angezeigt.

SET ALL = OFF 
PRINT ALL.EMP_ID DATE_ATTEND
WHERE PAY_DATE EQ 980115

Zeigt Angestellte an, für die entweder SALINFO-Daten für 980115 oder ATTNDSEG-Daten vorliegen.

Erzeugt eine Meldung (FOC144).

Zeigt Angestellte an, für die SALINFO-Daten für 980115 vorliegen. Alle DATE_ATTEND-Daten werden ebenfalls angezeigt.

SET ALL = ON or OFF
PRINT EMP_ID PAY_DATE DATE_ATTEND
WHERE PAY_DATE EQ 980115 AND COURSE_CODE EQ  '103'

Zeigt Angestellte an, für die entweder SALINFO-Daten für 980115 oder COURSE 103-Daten vorliegen.

Hinweis: SIMPLE behandelt AND in der WHERE-Klausel wie OR.

Erzeugt eine Meldung (FOC144).

Zeigt Angestellte an, für die sowohl SALINFO-Daten für 980115 als auch COURSE 103-Daten vorliegen.

Hinweis: SET ALL = PASS wird mit MULTIPATH = COMPOUND nicht unterstützt.

Zugehörige Informationen über den ALL-Parameter finden Sie unter Datensätze mit fehlenden Feldwerten verarbeiten.



x
Referenz: Regeln, um zu bestimmen, ob ein Segment benötigt wird

Die Segmentregel wird auf eine Ebene nach der anderen angewendet und zwar absteigend in der Datenquellen-/Ansichts-Hierarchie. Das heißt, dass die Existenz eines übergeordneten Segments von der Existenz des untergeordneten Segments abhängt, und dass ein untergeordnetes Segment von der Existenz eines ihm untergeordneten Segments abhängt usw. für die gesamte Datenquellenstruktur.

Die folgenden Regeln werden verwendet, um zu bestimmen, ob ein Segment erforderlich oder optional ist:

Hinweis: ALL = PASS wird nicht für alle Datenadapter unterstützt und verhält sich ggf., falls es unterstützt wird, ein wenig anders. Genaue Informationen finden Sie in der Dokumentation des Datenadapters.

Zugehörige Informationen über den Parameter ALL finden Sie unter Datensätze mit fehlenden Feldwerten verarbeiten und im Handbuch Daten mit der WebFOCUS-Sprache beschreiben .


WebFOCUS