Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Dom_Sum mit Datum als Kriterium; Access Newbie

Begonnen von dschroeder1989, Juni 24, 2017, 20:29:37

⏪ vorheriges - nächstes ⏩

dschroeder1989

Hallo,
ich verzweifle gerade an einer Laufsumme; bzw. am Kriterium für die Dom_Sum Funktion.
Ich habe es identisch zu https://support.microsoft.com/de-de/help/290136/how-to-create-a-running-totals-query-in-microsoft-access versucht, ohne Erfolg. Es kommen immer diverse Syntax Fehler.

SELECT Kassenstand_ber.Betrag_tot, Kassenstand_ber.Bezahlt_Dat, DSum("Betrag_tot","Kassenstand_ber","[Bezahlt_Dat]<=") AS Lauf_Summe
FROM Kassenstand_ber
GROUP BY Kassenstand_ber.Betrag_tot, Kassenstand_ber.Bezahlt_Dat;

Danke für eure Hilfe

David

dschroeder1989

...kurze Anmerkung

sollte ich zuvor evtl. eine Abfrage generieren die Gruppiert, da Bezahlt_Dat mehrfach mit gleichem Wert vorkommen kann? Und mit dieser dann die DomSum erst beginnen?

Viele Grüße
David

DF6GL

Hallo,

hier liegt der Hase begraben oder der Hund im Pfeffer:

Zitat...","[Bezahlt_Dat]<=") AS Lauf_Summe...


Wo ist der Vergleichwert?

dschroeder1989

Danke für die Antwort,
im obigen Link sieht das Bsp so aus:


   Feld: RunTot: Format(DSum("Frachtkosten","Bestellungen","[Personal-Nr]<=" _
          & [EmpAlias] & ""),"$0,000.00")
   Summe: Ausdruck
   Anzeigen: Ja

wobei ich keine Ahnung habe was 
#
_ & [EmpAlias] & ""
#

bedeutet.

Gibt es einen Vorschlag wie ich das Kriterium verbessern kann?
Es soll ja eine kumulative Summe werden,
Einen Primär Schlüssel gibt es nicht, da die Daten aus mehreren Quellen per Union zusammen gestellt sind.
Daher die Überlegung oben ob ich zu vor nach Datum aggregiere, damit das dann einmalig ist.

Vielen Dank

DF6GL

#4
Hallo,

Zitatwobei ich keine Ahnung habe was 
#
_ & [EmpAlias] & ""
#



nun, dann ist eben ein (Abfrage-)Feld, das den Vergleichswert (Kriterium) darstellt. 


Das MS-Beispiel musst Du natürlich an Deine Verhältnisse anpassen  und beachte "deutsches Access"  (";" statt "," als Trennzeichen im Abfrageentwurf und auch an weiteren Stellen, z. B. in der Eigenschaft  "Steuerelementinhalt" von Steuerelementen)


Als SQL-String im Abfrageentwurf/SQL-Ansicht:

SELECT Betrag_tot, Bezahlt_Dat, DSum("Betrag_tot","Kassenstand_ber","Bezahlt_Dat <= " & Format([Bezahlt_Dat],"\#yyyy-mm-dd\#")) AS Lauf_Summe
FROM Kassenstand_ber
Order BY Bezahlt_Dat



Möglicherweise geht auch dies:

SELECT Betrag_tot, Bezahlt_Dat, DSum("Betrag_tot","Kassenstand_ber","Bezahlt_Dat <= [Kassenstand_ber].[Bezahlt_Dat]") AS Lauf_Summe   
FROM Kassenstand_ber
Order BY Bezahlt_Dat


siehe weiterhin: http://www.donkarl.com/?FAQ3.11

und u. st. Links 1-4

dschroeder1989

Vielen Dank, die erste Syntax funktioniert, die zweite zeigt noch einen Syntaxfehler. Aber eine Lösung reicht ja vollkommen ;-
Ich habe zusätzlich zuvor noch aggregiert, um doppelte Datums-Werte zu vermeiden.

Ich habe nun also eine Tabelle erzeugt mit einer Datumsspalte und dem Kummulativ berechneten Kassenstand. Ich würde gerne als letztes mit der Datumsspalte nach dem aktuellsten filtern. bzw. in einer zweiten Abfrage nach einem bestimmten Datum, in beiden fällen reicht es ja nicht aus Jetzt() bzw. [Eingabe Datum] als Kriterium zu setzen, da das Datum ja evt nicht existiert.
Für den Fall des aktuellsten Datums habe ich als Kriterium Max([Datum]) versucht.
Mit dem Fehler, dass eine Aggregat Funktion hier nicht möglich sei. Muss ich also in einer anderen Abfrage erst den Max-Wert ermitteln und den dann hier vergleichen? Wäre möglich klingt aber umständlich.
Und zweitens würde ich gerne durch Parametereingabe filtern. Hier hätte ich Max([Datum]>[ParameterEingabe]) versucht.

Vielen Dank schon einmal,
David

dschroeder1989

Hallo DF6GL,
nochmal Danke für deine schnellen und detaillierten Antworten.
Ich habe gerade noch einmal überlegt, da das Berechnen der kummulativen Summesehr lange dauert ob es nicht noch anders geht... da ist es mir "wie Schuppen von den Augen gefallen"
Ich nehme die Abfrage mit den Spalten [Bezahlt Dat] und [Betrag_tot] und Filter das Datum mit "<[Bitte Datum Eingeben]" und darauf baue ich eine Abfrage auf die nur [Betrag_tot] als Feld hat und aggregiere dann mit Summe. Funktioniert deutlich schneller. Da bin ich am WE gar nicht drauf gekommen.
Mit der Lösung kann ich dann auch zu vor mit "<Jetzt()" vergleichen und erhalte den aktuellen Kassenstand.

Vielen Dank für deine Hilfe noch einmal, manchmal sieht man die naheliegende Lösung ja gar nicht. Tolle Community hier!

David