0

Nach Annäherungswert aus Zahlenfeld in Tabelle suchen lassen

Hallo Liebe Communitiy,

ich habe eine Tabelle 'Pegelstand' mit 2 Spalten - Spalte 1 enthält den abgelesenen Pegel in cm und Spalte 2 den dazugehörigen Wert der Wassermenge in Liter.

Wie kann ich jetz aus einer anderen ( von mir aus auch verknüpften Tabelle) nach einem Wert Spalte 2 in Liter suchen lassen der über eine Annäherung an Wert aus Spalte 1 gesucht wird.

D.h. ich messe einen Pegel in cm den es vielleicht nicht exakt in der Tabelle 'Pegelstand' gibt. Jetzt brauche ich Wert 2 in Liter aus der Zeile die mit Wert 1 cm am nächsten dran ist:

Danke im Voraus für die Hilfe!!

Stefan

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Stefan, folgende Lösung ist zugegebenermaßen nicht sehr elegant, könnte aber funktionieren (in einem Funktionsfeld):

     

    let myPegel := Pegel;
    let myPcm := first((select Pegelstand)[cm = myPegel]);
    if myPcm != null then
       myPcm.Liter
    else
       let LessPcm := last((select Pegelstand)[cm < myPegel] order by cm);
       let GreaterPcm := first((select Pegelstand)[cm > myPegel] order by cm);
       if myPegel - LessPcm.cm < GreaterPcm.cm - myPegel then
          LessPcm.Liter
       else
          GreaterPcm.Liter
       end
    end

     

    Wobei 'cm' und 'Liter' Zahlenfelder in der Tabelle 'Pegelstand' wären, 'Pegel' ein numerisches Eingabefeld für den abzufragenden Pegelstand in Zentimetern.

    • Stefan_Mann
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo planox.pro, danke das funktioniert sehr gut. Einzig git er auch für den kleinsten Wert der Wassermenge in Liter aus wenn der Pegel unterhalb der letzten Einträge in der Tabelle liegt.

    Wenn ich jedoch den höchsten Eintrag übersteige bleibt die Funktion leer und zeigt nicht den höchsten Eintrag der Tabelle an. Weisst Du woran das liegen kann?

    Danke und viele Grüße Stefan