1

Summieren von Beträgen einer verknüpften Tabelle

Hallo zusammen,

ich arbeite mit den Tabellen "Reisekosten" und "Report Reisekosten". Ich möchte in "Report Reisekosten" die Summe der 'Verpflegungspauschale EUR' (Zahl in Reisekosten) errechnen. Dazu sollen aber drei Bedingungen erfüllt werden:

1) Berater.Nr = Reisekosten.Berater.Nr

Hierbei ist "Berater" eine Verknüpfung zu einer Hilfstabelle. Ziel ist es, nur die Summe der Verpflegungspauschale des ausgewählten Beraters zu bilden.

2) Jahr (Zahl; z. B. "2022") = Reisekosten.Datum

3) Monat (Zahl; z. B. "1") = Reisekosten.Datum

 

Mein Code lautet bisher:

-----------------

if Berater.Nr = Reisekosten.Berater.Nr
    then
        sum(Reisekosten.'Verpflegungspauschale (EUR)')
end

-----------------

Leider hakt es da schon bei der Umsetzung.

 

Kann mit jemand damit helfen?


Vielen Dank im Voraus.

8 Antworten

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Justin,

    auf die Schnelle: ich würde das als select Abfrage aufbauen.
    Die Vergleiche/Zuordnungen zu Jahr und Monat sind mir noch nicht ganz klar.
    Soll das zum aktuellen Jahr / Monat sein oder soll es eine Auswahl geben?

    Hier ein Skript das dir vielleicht als weiterer Einstieg hilft:

    let me = this;
    sum((select Reisekosten)[me.Berater.Nr = Reisekosten.Berater.Nr and Jahr = year(today()) and Monat = month(today())].'Verpflegungspauschale (EUR)')
    

    Viel Erfolg
    Ronald

      • justin_messner
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Hallo Ronald Polski ,

      vielen Dank für die schnelle Hilfe.

      Grundsätzlich sollte der Code soweit passen. Leider ist mein Problem nur, dass die Reisekosten.Berater.Nr nicht gefunden wird (Eine Tabellenspalte wurde nicht gefunden: Reisekosten in Zeile 2, Spalte 52).

      Das war auch bereits zuvor mein Hauptproblem. Hast du eine Idee, wie ich das Lösen könnte?

       

      Durch die Idee von Johannes Faller , mit einem Auswahlfeld zu arbeiten, bringt einen Mehraufwand auf wenn z. B. ein Berater dazukommt oder das Unternehmen verlässt. Die Auswahlmöglichkeiten müssten somit immer händisch angepasst werden, was ich zu vermeiden versuche. Als Notlösung behalte ich es aber im Hinterkopf - Danke!

       

      Grüße

      Justin

      • john_eans
      • vor 2 Jahren
      • Gemeldet - anzeigen

      justin. messner 
      Hallo Justin,

      mit dem dynamischen Auswahlfeld kannst du auf eine Beratertabelle verweisen. Klar, in der Tabelle musst du dann die Berater ein und austragen, aber das dynamische Auswahlfeld hat sogar den Vorteil, dass du dort die Auswahl einschränken könntest.

      Schau gerne mal in die mitgeschickte Ninox-Tabelle von vorhin, da siehst du dann, wie alles zusammen hängt.

      VG

      • john_eans
      • vor 2 Jahren
      • Gemeldet - anzeigen

      justin. messner 

      Im Code von Ronald muss das Reisekosten weg, du befindest dich über select ja schon in den Reisekosten. Also:

      let me = this;
      sum((select Reisekosten)[me.Berater.Nr = Berater.Nr and Jahr = year(today()) and Monat = month(today())].'Verpflegungspauschale (EUR)')
      
      
      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Johannes Faller 
      👍 Danke!

      Und die Dynamischen Auswahlfelder sind schon ein Geniestreich!
      Dadurch gibt es soooo viele Möglichkeiten...

    • john_eans
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Justin,

    willkommen im Forum.

    M.E. wäre es am besten, wenn du keine Verknüpfung zu der Hilfstabelle aufbaust, sondern ein dynamisches Auswahlfeld.

    In der Tabelle "Report Reisekosten" legst du dann ein Berechnungsfeld an mit folgendem Script:

    let my := this;
    let myReisekosten := (select Reisekosten where year(Datum) = my.Jahr and month(Datum) = my.Monat and 'Auswahl (dynamisch)' = my.'Auswahl (dynamisch)');
    sum(myReisekosten.'Verpflegungspauschale EUR')

    kurze Erklärung:

    1. du definierst deinen aktuellen Datensatz (um später darauf zugreifen zu können)
    2. du selektierst alle Datensätze in "Reisekosten", die deinen Bedingungen entsprechen.
      'Auswahl (dynamisch)' steht dabei für das dynamische Auswahlfeld. (Berater)
    3. du summierst 'Verpflegungspauschale EUR' aller passenden Datensätze

    Ein Beispiel auch als Anlage anbei.

    VG

    • justin_messner
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Vielen Dank an Euch!

    Um den Thread an der Stelle zu beenden - anbei die Lösung:

    ----

    let me := this;
    sum((select Reisekosten)[me.Berater.Nr = Berater.Nr and me.Jahr = year(today()) and me.Monat = month(today())].'Verpflegungspauschale (EUR)')
    end

    ----

     

    Freundliche Grüße

     

    Justin Messner

      • justin_messner
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Ggf. auch folgende Lösung, wenn die Bedingung 3) sich nicht auf today() bezieht, sondern nach dem festgelegten Datum gefiltert werden soll:

       

      let me := this;
      sum((select Reisekosten)[me.Berater.Nr = Berater.Nr and me.Jahr = year(Datum) and me.Monat = month(Datum)].'Verpflegungspauschale (EUR)')
      end

       

      Gruß

      Justin Messner