0

Summe Haben für laufendes Jahr

Hallo,

 

ich hab in meiner DB die Tabelle Buchungen in der alle Buchungen aller Konten eingepflegt werden und halt auch eine Tabelle Konten wo ich mir den aktuellen Kontostand anzeigen lasse, bis hier alles gut.

Jetzt würd ich gern noch in der Tabelle Konten 2 Spalten nach pflegen "Umsatz Vorjahr" und "Umsatz laufends Jahr" und hier komme ich nicht weiter.

Versucht hatte ich es fürs laufende Jahr mal hiermit, bekam aber nur die Message das in Zeile 1 Spalte 34 ein Komma fehlt ...

sum(select Buchungen.Haben where year(Buchungen.Buchungsdatum) = 2020)

 

Am schönsten wäre wenn ich das nicht jedes Jahr ändern müsste, sprich anstelle eine Jahreszahl sowas wie thisYear wenn möglich.

 

Danke

10 Antworten

null
    • Holzi
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo, ich hab's nicht getestet, aber so könnte es gehen:
    Für das aktuelle Jahr:

    select (Buchungen.Haben)[year(Buchungen.Buchungsdatum) = year(today())]

    Für das Vorjahr:
    select (Buchungen.Haben)[year(Buchungen.Buchungsdatum) = year(today()-1)]

    • Holzi
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Oh, natürlich davor noch "sum"

    • Jurgen_Schneppe
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo,

    danke für den schnellen tipp aber leider bekomme ich da nur fehler wieder, es scheint irgendeine kleinigkeit noch zu fehlen

    sum(select (Buchungen.Haben)[year(Buchungen.Buchungsdatum) = year(today())]) **Fehler, ID erwartet in Spalte 12**

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

    Moin, versuch's mal so:

     

    sum((select Buchungen where year(Buchungsdatum) = year(now())).Haben)

    • Jurgen_Schneppe
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Perfekt, Danke.

     

    nur zur Vollständigkeit fürs Vorjahr gehts auch

    sum((select Buchungen where year(Buchungsdatum) = year(now()) - 1).Haben)

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

    Genau. Ich war mir sicher, dass du das mit dem Vorjahr selbst hinbekommst. ;)

    • Jurgen_Schneppe
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Huhu

    leider gibts noch ein kleines Problem das ich nicht lösen kann

    sum((select Buchungen where year(Buchungsdatum) = year(now())).Haben and Buchungen.Konten = Kontonummer)

    der erste Teil bis zum and funktioiert gut allerdings wir bei jedem Konto der gesamtumsatz angezeigt, das wollte ich für jedes Konto separat aber leider klappt das nich so wie ich es mir gedacht hab, vermutlich weil das "Buchungen.Kontonummer" ein Auswahlfeld ist 'grml'

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Das kann möglicherweise daran liegen, das du 2 unterschiedliche Werte miteinander vergleichst.
    Hast du mal geprüft, ob das Feld/Variable Kontonummer einen Wert hat, der sich auch mit Buchungen.Kontonummer vergleichen lässt?
    Zum einen sollten beide entweder das Format text oder number haben und zum anderen sollte das Ergebnis des Auswahlfeldes auch eine Kontonummer ergeben und nicht die ID des Auswahlfeldes.
    Vielleicht auch Kontonummer vor der Abfrage als Variable definieren: vKontonummer und dann in der Abfrage verwenden. Vorab prüfen, ob der Inhalt der Variablen tatsächlich eine Kontonummer ist.

    • Leonid_Semik
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich würde die Formel anders schreiben:

    ---

    let me:=this;
    sum(select Buchungen [year(Buchungsdatum) = year(now())) and Konten = me.Kontonummer].Haben)

    ---

    Leo

    • Jurgen_Schneppe
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    erstmal Dank an alle, habs jetz gelöst mit dem Ansatz von Leo, allerdings habe ich vorher noch ein Funktionsdeld unter buchungen erstellt welches die Kontonummer wiedergibt und dieses ausgeblendet.

    Die Formel wäre dann

    **

    let me := this;
    sum((select Buchungen)[year(Buchungsdatum) = year(now()) and 'Kto.Nr.' = me.Kontonummer].Haben)

    **

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 10Antworten
  • 601Ansichten