0

Hallo,

ich möchte in einem Fahrtenbuch die gefahrenen km zwischen 2 Orten und die Tageskilometer berechnen. Dazu brauche ich den zuvor eingetragenen Kilometerstand aus dem letzten Datensatz für die Weiterberechnung (Differenz aus dem momentanen Kilometerstand minus dem letzten Kilometerstand). Wie kann ich das realisieren?

MfG Old Stoni

4 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Old Stoni,

    Die Datensätze werden mit IDs (Nr) fortlaufend nummeriert. Wenn du die Kilometerstände konsiquent fortlaufend führst und nicht nachträglich die Daten einträgst, kannst du den letzten Datensatz so ansprechen:

    ---

    let myRecord:=this;

    let lastRecord:=last(select 'Deine Tabelle' where number(Nr)<number(myRecord.Nr))

    ---

    Und dann den Kilometerstand:

    ---

    let lastKmSt:=lastRecord.Kilometerstand

    ---

    und die fertige Formel für Differenz als Berechnungsfeld könnte so aussehen:

    ---

    let myKmSt:=Kilometerstand;

    let myRecord:=this;

    let lastRecord:=last(select 'Deine Tabelle' where number(Nr)<number(myRecord.Nr));

    let lastKmSt:=lastRecord.Kilometerstand;

    myKmSt-lastKmSt

    ---

    Leo

    • post.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, erstmal vielen Dank für die superschnelle Hilfe :-).

    Aber genau da liegt der Hase im Pfeffer, manchmal werden die Daten erst nachgetragen und da kommt die ID "durcheinander". Mir wäre es lieber, man könnte das anhand von Datum und Uhrzeit festmachen. Siehst Du da eine Möglichkeit?

    MfG Old Stoni

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Old Stoni,

    wenn Datum und Uhrzeit als ein Date Time Feld eingetragen wird, dann

    ---

    let myKmSt:=Kilometerstand;

    let myDateTime:='Datums-Uhrzeit Feld';

    let lastDateTime:=max(select 'Deine Tabelle' where 'Datums-Uhrzeit Feld'<myDateTiime.'Datums-Uhrzeit Feld');

    let lastRecord:=last(select 'Deine Tabelle' where 'Datums-Uhrzeit Feld'=lastDateTime);

    let lastKmSt:=lastRecord.Kilometerstand;

    myKmSt-lastKmSt

    ---

    wenn es für Datum und Uhrzeit zwei verschiedenen Felder genutzt werden, dann:

    ---

    let myKmSt:=Kilometerstand;

    let myDateTime:='Datumsfeld'+'UhrzeitFeld';

    let lastDateTime:=max(select 'Deine Tabelle' where ('Datumsfeld'+'UhrzeitFeld')<myDateTiime.('Datumsfeld'+'UhrzeitFeld'));

    let lastRecord:=last(select 'Deine Tabelle' where ('Datumsfeld'+'UhrzeitFeld')=lastDateTime;

    let lastKmSt:=lastRecord.Kilometerstand;

    myKmSt-lastKmSt

    ---

    Leo

    • post.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wahnsinn wie schnell Ihr seid ... vielen, vielen Dank! Ich werde das nachher sofort ausprobieren.

    MfG

    Old Stoni

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1610Ansichten