Show TOC Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Beispiele für die Umsetzung von Bedingungen  Dokument im Navigationsbaum lokalisieren

Die folgenden Beispiele zeigen, welche Auswirkungen das Kennzeichen left outer: Filterwert in on-Bedingung aufnehmen auf die Queryergebnisse hat.

Ein stammdatentragendes Merkmal ZPRODUCT (T00001) enthält zwei Datensätze.

#Feld (ZPRODUCT)

A

B

Ein DataStore-Objekt ZSD_01 (T00002) enthält drei Datensätze:

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

27.09.2003

X

A

01.04.2003

X

C

17.05.2003

X

Im InfoSet werden beide InfoProvider verknüpft über: ZPRODUCT- ZPRODUCT mit ZSD_01- ZPRODUCT

Diese Grafik wird im zugehörigen Text erklärt

Es sollten nun folgende Fälle betrachtet werden:

Fall 1

Die Objekte werden über einen Inner Join verknüpft, alle Felder werden in der Query ausgegeben und es wird eine Einschränkung auf das Datum vorgenommen - nämlich auf den 01.04.2003. Wenn alle Objekte des InfoSets über einen Inner Join verknüpft sind, hat das Kennzeichen keinen Einfluss auf das erzeugte SQL-Statement bzw. auf das Endergebnis. Die Reihenfolge, ob die Bedingung vor Auswertung des Joins oder nach Ausführung des Joins ausgeführt wird, ist nicht relevant. Das Ergebnis ist identisch - unabhängig davon, ob die Einschränkungen in der on- oder in der where-Bedingung stehen.

In beiden Fällen erhält man als Ergebnis:

#Feld (ZPRODUCT)

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

A

01.04.2003

X

Fall 2

Die Objekte werden über einen Left Outer Join (die outer-Bedingung wird an dem DataStore-Objekt gesetzt) verknüpft, alle Felder werden in der Query ausgegeben und es wird eine Einschränkung auf das Datum vorgenommen - nämlich auf den 01.04.2003.

In diesem Fall wird angenommen, dass das Kennzeichen initial ist. Somit wird die Einschränkung in die where-Bedingung aufgenommen und sie wird nach dem Join ausgewertet.

Für obiges Beispiel bedeutet dies folgendes:

Zunächst wird der Join gebildet. Daraus ergibt sich:

#Feld (ZPRODUCT)

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

A

27.09.2003

X

A

A

01.04.2003

X

B

 

 

 

Nun wird auf diesem Ergebnis die Einschränkung angewendet (Datum = 01.04.2003).

Somit sieht das Ergebnis aus wie folgt:

#Feld (ZPRODUCT)

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

A

01.04.2003

X

Fall 3

Die Objekte werden über einen Left Outer Join (die outer-Bedingung wird an dem DataStore-Objekt gesetzt) verknüpft, alle Felder werden in der Query ausgegeben und es wird eine Einschränkung auf das Datum vorgenommen - nämlich auf den 01.04.2003.

In diesem Fall wird angenommen, dass das Kennzeichen nicht initial ist. Somit wird die Einschränkung in die on-Bedingung aufgenommen und sie wird vor dem Join ausgewertet.

Für obiges Beispiel bedeutet dies folgendes:

Zunächst wird die Einschränkung ausgewertet. Für das DataStore-Objekt existiert dann folgender Satz:

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

01.04.2003

X

Im zweiten Schritt erfolgt der Join. Somit sieht das Ergebnis aus wie folgt:

#Feld (ZPRODUCT)

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

A

01.04.2003

X

B

 

 

 

Dadurch, dass die Einschränkung auf den 01.04.2003 in die on-Bedingung kommt, erhält man nun als Ergebnis:

#Feld (ZPRODUCT)

#Feld (ZPRODUCT)

#Datum (0DATE)

ABC-Kennzeichen (ABCKEY)

A

A

01.04.2003

X

B

 

 

 

 

Ende des Inhaltsbereichs