0

Vorletzten (nicht letzten) Datensatz aus Tabelle auslesen

Moin!

Wie die Überschrift schon verrät, würde ich gern den vorletzten Datensatz aus einer Tabelle auslesen, welcher aber an eine Bedingung geknüpft ist. Ich habe eine Tabelle mit 3 Farben. Rot, Blau und Grün.
ID 63 = Rot
ID 64 = Grün
ID 65 = Rot

Mit last() kann ich mir nun den letzten roten Datensatz holen. Der hat die ID 65. Jetzt will ich aber den letzten Datensatz ungleich der ID 65. Mit z.B. last(select TABELLENNAME Nr != 65) klappt es aber leider nicht. Ich stehe hier auf dem Schlauch. Habe schon versucht mit concat die ganzen IDs die entsprechend dem Filter rot beide IDs auswirft (63, 65). Habe aber keine Ahnung wie ich da den vorletzten (es könnten ja mehr als 2 existieren) extrahieren kann um damit eine neue select Anweisung abzufeuern.

Würde mich sehr freuen wenn hier jemand eine Lösung hätte.

5 Antworten

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

    Hallo Benjamin, versuch's mal so:

     

    let Letzter := last((select TABELLE) order by number(Nr));
    let Vorletzter := last((select TABELLE where number(Nr) < Letzter) order by number(Nr));

     

    Die Variable 'Vorletzter könnte direkt weiter verarbeitet werden, um auf den vorletzten Datensatz der TABELLE zuzugreifen.

    • Benjamin0815
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Funktioniert!

    Tausend Dank! :-)

    • Kessy
    • vor 2 Jahren
    • Gemeldet - anzeigen

    bei mir funktioniert es leider nicht...

    Tabelle "T"

    Datensatz 1 in Tabelle "T" Datensatz "A" ist Berechnetes Feld

    Datensatz 2 in Tabelle "T" Datensatz "B" ist Berechnetes Feld

    Datensatz 3 in Tabelle "T" Datensatz "C" ist Berechnetes Feld

    usw.

    - ich möchte in einem Berechneten Feld "XYZ" in der Tabelle "T" Datensatz 2 "B" den Inhalt des vorherigen Datensatz "A" aus der Tabelle "T" angezeigt bekommen

    - ich möchte in einem Berechneten Feld "XYZ" in der Tabelle "T" Datensatz 3 "C" den Inhalt des vorherigen Datensatz "B" aus der Tabelle "T" angezeigt bekommen

    mit last funktioniert es nicht da dann immer der letzte angezeigt wird

     

    Vielen lieben Dank.

    • peter.7
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo. Bin hier ein seltener Gast und immer fündig geworden. Hier dann auch. Aber:

    Ich erhalte mit der unten stehenden Hilfe quasi ALLE Datensätze, nur nicht den letzten. Das ist schon die richtige Richtung, aber ich möchte -um im obigen Beispiel zu bleiben- nur die "64" als Ergebnis erhalten. Bisher erhalte ich "63 64". Was tun?

    • Benjamin_Kunzmann
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi, so könnte es auch zum Ziel (Record Nr 64) führen:

    let myTabelle := select TABELLE
    let myVorletzter := last(myTabelle[number(Nr)> max(myTabelle.number(Nr))])
    myVorletzter
    

Content aside

  • vor 1 JahrZuletzt aktiv
  • 5Antworten
  • 1237Ansichten
  • 2 Folge bereits