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
-
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
-
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
-
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
-
Wahnsinn wie schnell Ihr seid ... vielen, vielen Dank! Ich werde das nachher sofort ausprobieren.
MfG
Old Stoni
Content aside
- vor 6 JahrenZuletzt aktiv
- 4Antworten
- 1610Ansichten