SQL-Expressions sollen mit Feldern aus anderen Direct Views arbeiten

In einer Berechnung auf DV112, angelegt als SQL-Berechnete Spalte, will ich Werte aus DV1 mit verwenden. Das funktioniert nicht, obwohl ich den DV1 ausdrücklich angebe, also:
F1399 * DV1.F1121
Dann kommt Fehlermeldung SqlState 37000, NativeErr: 4104, … The multi-part identifier „t1.Integer“ could not be bound. …

  • Gefällt
Antwort

Das Select-Ergebnis im DV1 ist nicht Bestandteil des Select-Statements von DV112. Selbst wenn die in DV1 abgefragte Tabelle auch in DV112 eine Rolle spielen sollte, so ist sie hier doch anders referenziert und hat u.U. auch einen anderen Alias, etwa t55 statt t9.
Die SQL-Expression muss mit den bereits in DV1 an die Oberfläche gelieferten Werten arbeiten, holt sie also nicht direkt von der Datenbank, daher wäre die Syntax hier:
F1399 * $[DV1.F1121.Value()]
Ermittelte Characterwerte wären dann auch in Hochkomma einzufassen, eben SQL-mäßig. Das gilt sinngemäß auch für die Verwendung in SQL-Bedingungen.

ACHTUNG: Hier unbedingt die Refresh-Reihenfolge beachten! In einer SQL-Berechneten Spalte in DV1 kann man keine Werte aus einem untergeordneten DV verwenden, weil dessen Werte ja erst NACH dem DV1 in die Oberfläche gelangen.

  • Gefällt
Antwort
Abbruch