0

Jüngstes Datum auslesen

Hallo zusammen,

ich habe eine Frage zum Auslesen des neusten Datums über einen select-Befehl.
In Tabelle "Bescheide" finden sich folgende relevanten Felder: "Datum des Bescheids", "Bescheid für Jahr" und über eine Untertabelle "Bescheidart".
In einer nicht verknüpften Tabelle "Mittelabruf" (diese u. a. mit dem  Feld "Jahr des Mittelabrufs") möchte ich gerne den jüngsten Datumswert des Feldes "Datum des Bescheids" angezeigt bekommen für das folgende Bedingungen erfüllt sind: 
"Bescheidart" = Nr.1;
"Bescheid für Jahr" = "Jahr des Mittelabrufs"

Ich habe nun, mit Ben Lukas' Hilfe aus der Sprechstunde, folgendes Script:

let myYear := 'Jahr des Mittelabrufs';
last(select Bescheide where
Nr.'Art des Bescheids'=1 and
number('Jahresbescheid für'.Jahreszahl) = number(myYear)
and 'Datum des Bescheids).'Datum des Bescheids'

Das funktioniert auch, hat aber einen Haken: Mit "last" wird nicht das jüngste Datum ausgelesen, sondern der letzte Eintrag. Der letzte Eintrag muss aber nicht notwendigerweise das jüngste Datum haben. Mit dem dem Befehl "max" statt "last" wird aber gar nichts ausgegeben. 

Wenn jemand eine Idee hätte, wie ich unabhängig von der Reihenfolge der Eingabe zum jüngsten Datum kommen kann, würde ich mich freuen!

Schöne Grüße
ali
 

4 Antworten

null
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Ali, bei max() muss die Klammer hinter dem Datum gesetzt werden also max((select Tabelle where ...).'Datumd des Bescheids'). last() geht auch, wenn noch "order by 'Datum des Bescheids'" eingefügt wird. Mirko

      • Ali
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Hi Mirko,

      besten Dank für die schnelle und hilfreiche Antwort! Das mit der Klammer funktioniert bestens. Das mit dem "Order by" nicht, da ich nicht weiß, wo der Befehl hin soll …

      Und dann dachte ich: Haste das mit dem Datum verstanden, dann kannste auch das Aktenzeichen des jüngsten Bescheids einfügen, aber offenbar kann ich das nicht. Deshalb noch mal neu:

      In der Tabelle "Bescheide" gibt es noch das Feld 'Aktenzeichen'. Nun hätte ich gerne das Aktenzeichen jenes Datensatzes, den ninox mit Deiner Formel ausgelesen hat. Ich hätte gedacht, man müsse nur das Ende ändern: 

      let myYear := 'Jahr des Mittelabrufs';
      last((select Bescheide where
      Nr.'Art des Bescheids'=1 and
      number('Jahresbescheid für'.Jahreszahl) = number(myYear)
      and 'Datum des Bescheids).'Aktenzeichen')

      aber das funktioniert nicht.

      Was mach ich falsch?

      Danke und schöne Grüße
      ali

      • Developer by Smartplanung
      • smartplanung
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      last((select Bescheide where
      Nr.'Art des Bescheids'=1 and
      number('Jahresbescheid für'.Jahreszahl) = number(myYear)
      and 'Datum des Bescheids order by DEINFELD).'Aktenzeichen')
      

      Immer am Ende einer Select Anweisung (innerhalb der Klammern)

      • Ali
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Lieber Patrick,
      danke, das war es!
      Dieses Problem ist gelöst, ich bedanke mich herzlich bei Dir und Mirko :-)
      Beste Grüße
      ali