0

Auswertung nach Zeitraum

Hallo Zusammen, wir möchten gerne eine Auswertung in “Dashboard” (Tabelle mit Benutzerfeld) als Feld (Funktion) schaffen. Jeder Mitarbeiter (Tabelle mit Benutzerfeld) macht einen bestimmten Umsatz pro Tag mit einem 3 - Monatsumsatzsoll (“3-Monatssoll” Feld in Tabelle “Mitarbeiter”). Das Soll bezieht sich auf den Zeitraum der letzten 3 Monate, jedoch immer ganze Monate. Bsp. Heute ist der 17.11.2020 - somit bezieht sich das Soll auf die Monate 09,10 und 11. Dazu haben wir in der Tabelle “Stundenzettel” bereits ein Feld (Funktion), welche den Tagesumsatz ausliest.

Leider sind meine Kenntnisse mit Datumsrechnen im Ninox noch nicht besonders hoch einzuschätzen, daher bin ich für jede Hilfe dankbar :)

4 Antworten

null
    • Paul_Krummling
    • vor 4 Jahren
    • Gemeldet - anzeigen

    so ungefähr, aber das liefert leider kein Ergebniss: 

    let AA := Benutzer;
    let YEA := year(today());
    let MA := month(today());
    let MB := month(today()) - 1;
    let MC := month(today()) - 2;
    let XX := sum((select Stundenzettel where Benutzer = AA and Jahr = YEA and Monat = MA and Monat = MB and Monat = MC).Umsatz);
    XX - Mitarbeiter.“3-Montassoll”

    Weiß noch jemand Rat?

    • Paul_Krummling
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich komme der Sache näher :D, nur sagt er mir leider hier: “ungültiger Operator in letzter Zeile number - [number]” und ich weiß (noch) nicht warum. 

    let AA := Benutzer;
    let YEA := year(today());
    let MA := month(today());
    let MB := month(today()) - 1;
    let MC := month(today()) - 2;
    let ZA := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MA).Umsatz);
    let ZB := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MB).Umsatz);
    let ZC := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MC).Umsatz);
    let MS := (select Mitarbeiter where Benutzer = AA).“3-Montassoll”;
    let SUMM := sum(ZA,ZB,ZC);
    SUMM - MS

    • Paul_Krummling
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Habs gelöst bekommen, kann man aber sicher eleganter machen, wenn also jemand einen Vorschlag hat zum Code sparen würd ich mich freuen :)

    Hier der funktionierende und finale Code: 

     

    let AA := Benutzer;
    let YEA := year(today());
    let MA := month(today());
    let MB := month(today()) - 1;
    let MC := month(today()) - 2;
    let ZA := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MA).Umsatz);
    let ZB := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MB).Umsatz);
    let ZC := sum((select Stundenzettel where Benutzer = AA and Jahr.Jahr = YEA and Monat.Monat = MC).Umsatz);
    let MS := (select Mitarbeiter where Benutzer = AA).“3-Montassoll”;
    let SUMM := sum(ZA, ZB, ZC);
    number(SUMM) - number(MS)

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

    Hallo Paul, ist nicht getestet, aber so könnte es evtl. auch funktionieren:

     

    let me := this;
    let myDat := date(year(today()), month(today()) - 2, 1);
    sum((select Stundenzettel where Benutzer = me.Benutzer and Datum >= myDat).Umsatz) - me.“3-Monatssoll”