0

Werte aus einer Tabelle auslesen

Hallo Leute,

ich habe ein etwas komplexeres Problem, ich möchte über ein Formelfeld in der Tabelle 'Solaranlage' die aktuelle Einspeisevergütung für eine Solaranlage berechnen. In der Tabelle 'Einspeisevergütung' sind Spalten für Jahr, Monat und Betrag.

Über die Formel soll in der Tabelle 'Einspeisevergütung' nach dem Baujahr und -monat der Solaranlage gesucht werden und der entsprechende Wert der dazugeghörigen Einspeisevergütung ausgegeben werden.

mein Ansatz war folgender:

let a:= 'Inbetriebnahme Jahr';

let b:= 'Inbetriebnahme Monat';

let c := number(first(select 'Einspeisevergütung' where Jahr = a and Monat = b);

c

 

Die eigentliche Formel ist bei mir eigentlich noch komplexer, da noch andere Kriterien eine Rolle spielen, aber ich denke, dass in diesem Abschnitt der Fehler liegt.

Wäre super wenn mir da jemand helfen kann.

Viele Grüße

5 Antworten

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

    Auf die Schnelle ...

     

    In der 3. Zeile fehlt eine schließende Klammer. Davon abgesehen würde die Variable c als Ergebnis nur die Nummer des gefundenen Datensatzes enthalten, nicht aber einen Vergütungsbetrag o. ä. War das so gewollt? Ansonsten müsste man auch noch das Feld angeben, dessen Wert man auslesen will. Also z. B. so:

     

    let c := first((select 'Einspeisevergütung' where Jahr = a and Monat = b).DATENFELD);

     

    Grundsätzlich: Aus nur einem Zeichen bestehende Variablennamen können(!) zu Problemen führen. In der Regel tun sie das nicht, aber einen Versuch kann es im Zweifelsfall wert sein.

    • blue_bee
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    danke für deine Antwort, habe den Fehler mit number, Klammer und dem Fehlenden Datenfeld behoben. Leider geht es trotzdem nicht:

    let myyear := 'Inbetriebnahme Jahr';
    let mymonth := 'Inbetriebnahme Monat';
    let esvklein := first((select 'Einspeisevergütungen' where Jahr = myyear and Monat = mymonth and 'Anlagen-Kategorie' = 1).'Vergütung');
    esvklein

    • blue_bee
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Brauche ich eine Verknüpfung zwischen den beiden Tabellen?

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hm, stimmen die Datentypen von 'Inbetriebnahme Jahr/Monat'  und 'Jahr/Monat' in der Tabelle 'Einspeisevergütungen' überein? Wenn die Kombination von Jahr und Monat ein wichtiges Datenmerkmal ist, dann könnte man übrigens auch mit yearmonth() arbeiten. Aber das nur nebenbei. 

     

    Was kommt denn eigentlich als Ergebnis oder Fehlermeldung?

     

    Ach so, nein, eine Verknüpfung der Tabellen ist beim 'select' m. E. nicht erforderlich.

    • blue_bee
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hammer Typ, hast Recht. Hatte einmal das Jahr als Auswahlfeld und einmal als Zahlenfeld. 

    Ich danke dir vielmals.

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 5Antworten
  • 2418Ansichten