0

max(date) in Bedingung

Hallo,

in einer Untertabelle Schule mit einem Feld datum_beginn möchte ich die Schule heraussuchen, die das größte (späteste) Datum im Feld datum_beginn eingetragen hat. Mit dem Code:

let maxDate := max(Schule.datum_beginn);
first(Schule[datum_beginn = maxDate]).Dienststellen.('Name der Dienststelle' + ", " + Ort)

klappt das. Mit

first(Schule[max(datum_beginn)]).Dienststellen.('Name der Dienststelle' + ", " + Ort)

wird der erste Datensatz aus Schule ausgegeben, nicht die Schule mit dem größten Datum. max(datum_beginn) hat keinen Einfluss. Wieso ist das so?

4 Antworten

null
    • mirko3
    • vor 3 Tagen
    • Gemeldet - anzeigen

    Hallo Maurice. In

    first(Schule[max(datum_beginn)])

    wird die Funktion max() nur auf das aktuelle Datum der Tabelle "Schule" bezogen, welches im Filter [] durchlaufen wird. Stelle es dir so vor, wie in der längeren Schreibweise

    first(Schule[max(this.datum_beginn)])

    In den eckigen Klammern steht der Filter eines Records, demzufolge nur ein Datum, demzufolge bewirkt hier max() nichts und du gibst dann first() aus. Max() braucht sinnvollerweise ein Array. Mirko

      • Maurice
      • vor 3 Tagen
      • Gemeldet - anzeigen

       Danke. Das heißt, ich muss immer den Umweg über eine vorher definierte Variable gehen. Mit einer Zeile komme ich nicht hin. In dem Fall würde ich eine globale Funktion bauen, weil ich das sehr häufig brauche.

    • mirko3
    • vor 3 Tagen
    • Gemeldet - anzeigen

    Du könntest folgendes versuchen

    last(Schule order by datum_beginn).Dienststellen.('Name der Dienststelle' + ", " + Ort)
      • Maurice
      • vor 3 Tagen
      • Gemeldet - anzeigen

       Funktioniert. Danke.

Content aside

  • Status Answered
  • vor 3 TagenZuletzt aktiv
  • 4Antworten
  • 23Ansichten
  • 2 Folge bereits