0

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.

https://oberndoerfer-my.sharepoint.com/:u:/g/personal/andreas_hof-oberndoerfer_de/EecE7VJn8GdFvZ2hgAMa3VIBjs13kV4TVvfy6gj_vOg7oQ?e=5W6WEa

Grüße, Andreas

6 Antworten

null
    • Direktvermarktung Oberndörfer OHG
    • Andi.3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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.

    https://oberndoerfer-my.sharepoint.com/:u:/g/personal/andreas_hof-oberndoerfer_de/EecE7VJn8GdFvZ2hgAMa3VIBjs13kV4TVvfy6gj_vOg7oQ?e=5W6WEa

    Grüße, Andreas

    • mirko3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo, mein Vorschlag wäre:

     

    last(Sorte.Futterpreis order by Preisdatum).Mischungspreis

    • Direktvermarktung Oberndörfer OHG
    • Andi.3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Direktvermarktung Oberndörfer OHG
    • Andi.3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Dann vielleicht so?

     

    let myDatum := Lieferdatum;
    last(Sorte.Futterpreis[Preisdatum <= myDatum] order by Preisdatum).Mischungspreis