Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Interpretation von Queries über InfoSets  Dokument im Navigationsbaum lokalisieren

Die folgenden Erklärungen und Beispiele sollen Ihnen helfen, das Verhalten und die Ergebnisse von Queries über InfoSets zu verstehen und richtig zu interpretieren.

Technische Faktoren, die das Query-Ergebnis beeinflussen

Die Ergebnismenge eines Joins wird immer aus Feldern aller beteiligten Tabellen gebildet. Eine Zeile dieser Ergebnismenge enthält eine gültige Kombination von Zeilen aus jeder beteiligten Tabelle. Welche Kombinationen gültig sind, haben Sie einerseits durch die Join-Bedingung und andererseits durch den Filter der Query festgelegt.

Join-Bedingungen können sowohl zwischen Feldern, die aus dem Schlüsselteil als auch Feldern, die aus dem Datenteil der Tabellen stammen, definiert werden. Es kann also zum Beispiel für zwei InfoObjects eine Equal-Join-Bedingung zwischen zwei Attributen definiert werden.

Der Filter der Query definiert die zulässigen Werte für einzelne Spalten der Ergebnismenge bzw. die zulässigen Kombinationen von Werten verschiedener Spalten. Dadurch wird die durch die Join-Bedingung vorgegebene Ergebnismenge weiter eingeschränkt.

Je nachdem, wie die Join-Bedingungen definiert wurden, kann jeder Satz aus Tabelle1 und Tabelle2 mehrfach in eine Kombination für einen Satz der Ergebnismenge einfließen:

Existieren zum Beispiel für einen Satz aus Tabelle1 insgesamt drei Sätze aus Tabelle2, für die die Bedingung F1(T1) = F2(T2) gilt, so existieren potentiell drei Sätze in der Ergebnismenge, in die dieser Satz aus Tabelle1 einfließt. Enthält nun Tabelle1 eine Kennzahl, so kann diese Kennzahl je nach Filter-Bedingung überhaupt nicht oder ein- bis dreimal in die Ergebnismenge eingehen. Aus der Ergebnismenge werden die Daten für die Query bestimmt.

Zunächst erfolgt eine Verdichtung über die Merkmale, die in der Query nicht angezeigt werden sollen. Dabei können für gleiche Merkmalskombinationen in verschiedenen Queries unterschiedliche Werte für die gleiche Kennzahl ausgegeben werden, und so kann es zu unterschiedlichen Summen kommen.

Hinweis

Beachten Sie deshalb die Kennzahl Anzahl Sätze, die jedes InfoSet enthält. Aus ihr können Sie erkennen, wie viele Sätze der Ergebnismenge des Joins in einen Satz für die Query eingehen.

Beispiel

Sie verwenden folgende Objekte in einem Szenario:

      DataStore-Objekt DS_ORDER

Schlüssel: ORDER_NO

Datenteil: PERSON, PLANT, AMOUNT, ...

      Merkmal PLANT (zeitunabhängig)

Schlüssel: PLANT

Datenteil (Attribute): ... 

      Merkmal PERSON (zeitabhängig) 

Datenteil (Attribute): ...

      Merkmal BPARTNER (zeitunabhängig)

Schlüssel: BPARTNER

Datenteil (Attribute): PLANT, ...

In den folgenden Beispielen wird vorausgesetzt, dass für alle Merkmale im Datenteil von DS_ORDER auch entsprechende Stammdaten existieren. (Sonst müssten Sie mit einem Left Outer Join arbeiten.)

...

       1.      Ein InfoSet enthält einen Join aus dem DataStore-Objekt DS_ORDER und dem Merkmal PLANT und Sie haben die Join-Bedingung PLANT(DS_ORDER) = PLANT(PLANT) definiert. In diesem Fall gibt es zu jedem Satz aus DS_ORDER genau einen Satz aus PLANT. Es ist hier also nicht möglich, dass die Kennzahl BETRAG mehrfach in die Ergebnismenge einfließt.

       2.      Ein InfoSet enthält einen Join aus dem DataStore-Objekt DS_ORDER und dem Merkmal BPARTNER und Sie haben die Join-Bedingung PLANT(DS_ORDER) = PLANT(BPARTNER) definiert. Es muss davon ausgegangen werden, dass mehrere Sätze aus BPARTNER den gleichen Wert für PLANT besitzen. Damit können für einen Satz aus DS_ORDER mehrere passende Sätze aus BPARTNER ermittelt werden. Dies führt dann zu mehr als einem Satz in der Ergebnismenge des Joins und damit zu einer Vervielfachung der Kennzahl BETRAG.

       3.      Ein InfoSet enthält einen Join aus dem DataStore-Objekt DS_ORDER und dem zeitabhängigen Merkmal PERSON und Sie haben die Join-Bedingung PERSON(DS_ORDER) = PERSON(PERSON) definiert. Obwohl eine Person natürlich nur einmal existiert, können wegen der Zeitabhängigkeit des Merkmals PERSON für eine Person mehrere Sätze vorhanden sein. Zeitabhängige Merkmale führen damit zu der gleichen Situation, wie sie im zweiten Beispiel beschrieben wurde. Beachten Sie die Möglichkeiten zur Zeitselektion bei zeitabhängigen Merkmalen in temporalen Joins, um derartige Fälle zu vermeiden.

Ende des Inhaltsbereichs