Show TOC

Formelrechnung und SonderwerteLocate this document in the navigation structure

Verwendung

Im folgenden werden die Grundregeln erläutert, nach denen das System Nullwerte und andere Sonderwerte in Formeln berechnet.

Hinweis

Siehe auch SAP Hinweis 794006.

Folgende Sonderwerte werden erläutert:

  • NULL repräsentiert den Wert Null;

  • DIV0 ist das Ergebnis einer Division durch 0;

  • ERROR zeigt einen Fehler an;

  • NOP zeigt an, dass keine Aggregation möglich ist.

  • W steht für irgendeinen gültigen Wert und * für einen beliebigen Wert;

  • O1 ist ein unärer Operator (wie NODIM, NOERR)

  • O2 ist ein binärer Operator (wie +, -, *)

NOP ist das Ergebnis der Aggregationen NO1, NO2 und NOP (siehe Aggregation und Sonderwerte). Als Ergebnis einer Operation (oder einer inhomogenen Wertemenge) hat NOP bei folgender Vorrangregel seinen Platz zwischen NULL und ERROR.

  1. ERROR/DIV0

  2. NOP

  3. NULL oder ein normaler Wert, abhängig von der Operation.

Folgende Regeln gelten für Formeln:

  • NOERR( ERROR ) = 0, NDIV0(DIV0) = 0, O1(NULL) = NULL und O1(ERROR) = ERROR für alle übrigen unären Operatoren O1. Für NOP auch NOERR(NOP) = 0, NDIV0(NOP) = NOP, O1(NOP) = NOP für alle übrigen unären Operatoren O1. Diese Grundregel sagt, dass alle Operatoren mit nur einem Parameter DIV0- / NULL- / ERROR- / NOP-Werte ergeben, sofern der Parameter DIV0, NULL, ERROR oder NOP ist und der Operator kein Operator zur Unterdrückung dieser Werte ist.

  • O2(NULL,NULL) = NULL, O2(ERROR,*) = ERROR und O2(*,ERROR) = ERROR für alle binären Operatoren. Diese Grundregel sagt, dass ERROR (einschließlich DIV0) in allen Operationen dominant ist und alle Operationen mit ausschließlich NULL als Eingabe auch NULL als Ergebnis haben.

  • O2(ERROR,NOP) = ERROR und O2( {value OR NULL}, NOP) = NOP für alle binären Operatoren. Diese Grundregel sagt, dass DIV0/ERROR dominant gegenüber NOP ist, und NOP dominant gegenüber allen anderen Werten ist.

  • O2(NULL,W) = O2(0,W) und O2(W,NULL) = O2(W,0), mit Ausnahme der folgenden Kombinationen, die NULL als Ergebnis haben: NULL * W, W * NULL, NULL / W, NULL %A W, NULL %_A W, NULL %RT W, NULL %GT W, NULL %CT W, NULL ** W, NULL DIV W, NULL MOD W.

Im BW-System verhält sich der OLAP-Prozessor so, dass das Hinzufügen eines Strukturelements nicht zugleich auch eine Änderung des Inhalts aller anderen Strukturelemente bedingen muss. Daher behandelt der OLAP-Prozessor z.B. eine Division durch Null, ohne die Query gleich abzubrechen. Wenn also eine Zelle eine Division durch Null oder einen anderen Fehler enthält, dürfen die anderen Zellen davon nicht betroffen werden.

Da DIV0 eine spezielle Art von ERROR ist, verhalten sich DIV0 und ERROR gleich, wenn sie mit anderen Parameterwerten in Operationen kombiniert werden. Das Verhalten von DIV0 und ERROR in binären Operationen ist unspezifisch und hängt vom binären Operator O2 ab:

  • O2(DIV0, ERROR) = DIV0 oder ERROR

  • O2(ERROR, DIV0) = DIV0 oder ERROR

DIV0 ist spezifischer und kann daher den Vorrang vor ERROR erhalten. Aber insgesamt ist das Verhalten nicht eindeutig festgelegt.

Die folgende Tabelle gibt eine Übersicht über das Verhalten und alle Regeln:

Operator

Linker Operand

Rechter Operand

+, -

 

Y

NULL

NOP

DIV0 / ERROR

X

X op Y

X

NOP

DIV0 / ERROR

NULL

Y (-Y)

NULL + Y ergibt Y,

NULL - Y ergibt -Y.

NULL

NOP

NOP

DIV0 / ERROR

DIV0 / ERROR

*

X

X op Y

NULL

NOP

NULL

NULL

NULL

NOP

NOP

DIV0 / ERROR

DIV0 / ERROR

/, DIV, MOD

X

X op Y

Wenn Y = 0, ist das Ergebnis DIV0.

DIV0

NOP

NULL

NULL

NULL

NOP

NOP

Wenn Y = 0, ist das Ergebnis DIV0.

DIV0

DIV0 / ERROR

DIV0 / ERROR

Hoch (**)

X

X ** Y

1

NOP

NULL

NULL

NULL

NOP

NOP

DIV0 / ERROR

DIV0 / ERROR

%, %_A, %_RT, %_GT, %_CT

X

X op Y

X op 0

NOP

NULL

NULL

NULL

NOP

NOP

DIV0 / ERROR

DIV0 / ERROR

andere Operationen, z. B. MIN, MAX

X

X op Y

X op 0

NOP

NULL

0 op Y

NULL

NOP

NOP

DIV0 / ERROR

DIV0 / ERROR