Funktion mit select aus Untertabelle
Guten Morgen,
ich hänge mal wieder an einer eigentlich einfachen Funktion fest. Ich möchte einer Charge (Futtererfassung) einen Preis zuordnen (Mischungspreis) dieser Mischungspreis kommt aus einer Tabelle mit der Sortendefinition (Futtersorten) diese wiederum hat eine Untertabelle mit zugeordneten Preisen (Futterpreis). Meine Funktion sieht wie folgt aus:
let mySorte := Sorte;
let myDatum := Lieferdatum;
last(((select Futtersorten where Mischungsname = mySorte and Futterpreis.Preisdatum <= myDatum) order by Futterpreis.Preisdatum).Futterpreis.Mischungspreis)
Irgendwass stimmt nicht - ich komme aber nicht drauf.
Zum Verständnis habe ich die Testdatei hier hochgeladen.
Grüße, Andreas
6 Antworten
-
Beim reinkopieren hatte es den Link zerwürfelt. Daher nochmal:
Guten Morgen,
ich hänge mal wieder an einer eigentlich einfachen Funktion fest. Ich möchte einer Charge (Futtererfassung) einen Preis zuordnen (Mischungspreis) dieser Mischungspreis kommt aus einer Tabelle mit der Sortendefinition (Futtersorten) diese wiederum hat eine Untertabelle mit zugeordneten Preisen (Futterpreis). Meine Funktion sieht wie folgt aus:
let mySorte := Sorte;
let myDatum := Lieferdatum;
last(((select Futtersorten where Mischungsname = mySorte and Futterpreis.Preisdatum <= myDatum) order by Futterpreis.Preisdatum).Futterpreis.Mischungspreis)
Irgendwass stimmt nicht - ich komme aber nicht drauf.
Zum Verständnis habe ich die Testdatei hier hochgeladen.Grüße, Andreas
-
Hallo Andreas,
ich weiss nicht, ob ich aus Deiner Tabelle schlau geworden bin. Ich habe nun einfach angenommen, dass in der Tabelle FUTTERERFASSUNG das Feld MISCHUNGSPREIS der Gesamtpreis der Bestellung sein soll. Dieser wird kreiert aus dem Mischungspreis des entsprechenden Futters, der Bestellmenge und einer Standardchargengröße. Okay? Dann würde der Code:
number(Menge) / number(Sorte.'Standardchargengröße') * number(Sorte.Futterpreis.Mischungspreis) + " €" weiterhelfen. Sicher nicht elegant, wegen der ganzen "number" Sache, aber so passen die Formate und eine Einheit bekommst Du dazu.
Gruß Mirko
-
Hallo, mein Vorschlag wäre:
last(Sorte.Futterpreis order by Preisdatum).Mischungspreis
-
Danke für eure Unterstützung. Die Version von Copytexter funktioniert wie sie soll.
Die Chargengröße hat mit dem Preis nicht direkt etwas zu tun. Sie erspart nur beim Erfassen meistens eine Eingabe bei der Menge -
Hallo nochmal.
leider klappt es doch nicht ganz wie ich mir vorgestellt hatte. Mit der Formel von Copytexter bekomme ich immer den aktuellen Preis. Ich brauche aber den Preis wo Preisdatum <= Lieferdatum. Ich hatte das in einer anderen Anwendung funktionsfähig mit meiner Formel oben - hier hatte ich allerdings keine m:n Beziehung.
-
Dann vielleicht so?
let myDatum := Lieferdatum;
last(Sorte.Futterpreis[Preisdatum <= myDatum] order by Preisdatum).Mischungspreis
Content aside
- vor 4 JahrenZuletzt aktiv
- 6Antworten
- 1271Ansichten