Letztes zugehöriges Datum finden
Hallo,
ich stehe auf dem Schlauch. Warum funktioniert das mal richtig und mal nicht?
Das ergebniss past
hier nicht !
Es soll doch nur den letzen Lieferschein (Eingangsdatum) vor der 1.Abrechnung suchen und Ausgeben.
Im fx Letzter Lieferschein :
let me := this;
let aa := '1. Abrechnung';
last(for i in select Lieferscheine where 'Aufträge' = me and Eingangsdatum <= aa do
i.Eingangsdatum
end)
Im fx 1.Abrechnung:
do as server
let me := this;
last(for i in select Abrechnungen where 'Aufträge' = me and 'Abrechnung vom' do
i.'Abrechnung vom'
end)
end
im letzten fx sind nur die workdays('1. Abrechnung', 'Letzter Lieferschein vor 1. Abrechnung')
Kann mir einer auf die spur helfen?
Danke
4 Antworten
-
Hallo Michi,
für fx Letzter Lieferschein:
let me := this;
last(Lieferscheine [Eingangsdatum <= me.'1. Abrechnung'] order by 'Abrechnung vom'). 'Abrechnung vom'
fx 1.Abrechnung
last(Abrechnungen ['Abrechnung vom'] do order by 'Abrechnung vom').'Abrechnung vom'
Leo
-
Danke Leo.
Werde ich natürlich gern umsetzen. Aber warum ist order by jetzt wichtig? Dachte immer mit last oder first bekomm ich den ersten oder den letzten von den filterkriterien entsprechenden Eintrag.
-
Hallo Michi,
die Befehle last() und first() beziehen sich immer auf ein Array. Die Datensätze in dem select Aufruf (oder eben ohne select für Untertabellen) werden auch als Array ausgegeben. Die Datensätze sind standardmäßig nach ID sortiert. Wenn deine Datumsangaben mit der ID Sortierung übereinstimmen, dann kriegst du auch die richtigen Datumsangaben als Antwort für first() oder last().
in deiner Konstelletion:
last(for i in select Lieferscheine where 'Aufträge' = me and Eingangsdatum <= aa do
i.Eingangsdatum
end)
erstellst du aber ein Array aus Datums. Das sind im eigentlichen Sinne Zahlen. Um hier das größte Datum zu ermitteln, muss man mit max(Array) arbeiten.
Wenn man aber bei Datensätzen bleiben möchte, sortiert man diese zuerst mit order by nach Datum. Dann ist der Datensatz mit dem größten Datum auch automatich als letzte im Array
Leo
-
Wieder was gelernt
Content aside
- vor 3 JahrenZuletzt aktiv
- 4Antworten
- 250Ansichten