Berechnung von Max/Sum in einem

Moderator: ModerationP

Berechnung von Max/Sum in einem

Beitragvon AnitaWinter » 17. Okt 2019, 12:31

Hallo,
was soll ich sagen.

Ich habe eine Tabelle, ca wie folgt:

Buchungen (Euro)/ vonBucher
20 / Tom
30 / Jana
40 /Tom
60 / Tom

Jetzt möchte ich den jenigen mit der größten Buchung herausfinden.
Nach meiner Logig müsste ich nun erstmal eine Summe bilden und dann abfragen, wer nun das Miximum hat.

Nur das wie in der SQL abfrage, fällt mir ziemlich schwer.

trSQL = "Select sum(Buchungen) as BuchungGesamt, vonBucher FROM Buchungsübersicht Where max (Buchungen) group by vonBucher , Buchungen

Funktioniert natürlich nicht, ich kann natürlich kein max. berechnen, wenn die Zeile noch nicht ausgeführt wurde. :roll:
Viele Grüße
AnitaWinter
 

Re: Berechnung von Max/Sum in einem

Beitragvon Yaslaw » 17. Okt 2019, 13:09

Dazu hab ich mal ein Tutorial geschrieben
[SQL] Aktuelle Einträge pro Gruppe auslesen
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements sind formatierbar)
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
Benutzeravatar
Yaslaw
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2925
Registriert: 02. Jul 2014, 15:25
Wohnort: Winterthur

Re: Berechnung von Max/Sum in einem

Beitragvon Gast » 17. Okt 2019, 19:40

Hallo,
leider verstehe ich das nicht ganz, es ist auch nicht wirklich beschrieben was dort passiert.

Z.B.
SELECT k.* ---> Select k.*? Du bestimmst erst im nächsten Schritt, dass die Tabelle kurs als k bezeichnet wird? oder was ist k?
FROM kurs AS k
WHERE
(k.w1, k.w2, k.datum) IN (
SELECT w1, w2, MAX(datum) AS max_datum
FROM kurs
GROUP BY w1, w2
);
Gast
 

Re: Berechnung von Max/Sum in einem

Beitragvon AnitaWinter » 17. Okt 2019, 19:44

sorry war noch nciht fertig

SELECT k.*
FROM kurs AS k
WHERE
(k.w1, k.w2, k.datum) IN ( ---> Dann schreibe ich hier erst die Spalten hin, okey nehme ich mal so hin
SELECT w1, w2, MAX(datum) AS max_datum ----> hier wird dann das Max berechnet, gut das brauche ich auch, aber bei mir muss vorher noch auf dem Feld noch die Gesamtsumme b berechnet werden
FROM kurs
GROUP BY w1, w2
);

Also sehe ich zwar, dass das Max vom datum genommen wird und der Kurs zugeordnet wird, aber bei mir möchte ich, dass am Ende Tom mit 120 steht.
Viele Grüße
AnitaWinter
 

Re: Berechnung von Max/Sum in einem

Beitragvon Yaslaw » 18. Okt 2019, 07:47

Bitte den Code in Code-Tags schreiben. So ist er unlesbar.

Zu deinem Problem:
Du musst vorgängig die Summe bilden.
Ich würde zuerst eine Abfrage erstellen, die nur die Summen bildet. DIese nachher als Basis nehmen.
Code: Alles auswählen
VW_SUM_BUCHUNGEN:
select
   sum(BUCHUNGEN) as SUM_BUCHUNGEN,
   VONBUCHER
from
   MY_TABLE
group by
   VONBUCHER


Code: Alles auswählen
VW_RESULTAT:
select
   SUM_BUCHUNGEN,
   VONBUCHER
from VW_SUM_BUCHUNGEN
where SUM_BUCHUNGEN in (
      select max(SUM_BUCHUNGEN)
      from VW_SUM_BUCHUNGEN
   )
Zuletzt geändert von Yaslaw am 18. Okt 2019, 15:00, insgesamt 2-mal geändert.
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements sind formatierbar)
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
Benutzeravatar
Yaslaw
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2925
Registriert: 02. Jul 2014, 15:25
Wohnort: Winterthur

Re: Berechnung von Max/Sum in einem

Beitragvon Wurstmann » 18. Okt 2019, 09:54

Hey,

so vll?

Code: Alles auswählen
SELECT TOP 1 vonBucher, Sum(Buchungen) AS BuchungGesamt
FROM [Buchungsübersicht]
GROUP BY vonBucher
ORDER BY Sum(Buchungen) DESC;


VG
WM
Wurstmann
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 543
Registriert: 26. Jun 2013, 09:11

Re: Berechnung von Max/Sum in einem

Beitragvon Gast » 18. Okt 2019, 13:51

Hallo,
wie das mit Where ...In funktioniert muss ich nochmal genauer nachlesen.

Ich habe jetzt die Abfrage so strukturiert, nur dass ich

strSQL1="Select...."
rs1.Open strSQL1, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic

strSQL2=
"select
SUM_BUCHUNGEN,
VONBUCHER
from strSQL1
where SUM_BUCHUNGEN IN (select max(SUM_BUCHUNGEN) from trSQL1)"

rs2.Open strSQL2, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic

So für mich ist die Abfrage jetzt ziemlich logisch, aber er hat ein Problem im SQL2, er sagt mir hier immer als Fehlermeldung, dass er strSQL1 als Quelle nicht finden würde; rs1.close macht für mich jetzt irgendwie kein Sinn.
Gast
 

Re: Berechnung von Max/Sum in einem

Beitragvon Yaslaw » 18. Okt 2019, 14:58

Wie soll er auch. Ein SQL ist ein String. Dieser String ist im nächsten SQL nicht bekannt.

Mehr vom Code habe ich mir nicht angeschaut. Und zwar drarum:
Bitte den Code in Code-Tags schreiben. So ist er unlesbar.

2019-10-18_155847.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements sind formatierbar)
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
Benutzeravatar
Yaslaw
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2925
Registriert: 02. Jul 2014, 15:25
Wohnort: Winterthur

Re: Berechnung von Max/Sum in einem

Beitragvon Gast » 18. Okt 2019, 18:57

In den Lernbücher ist er immer bisher ein String gewesen.

Ich kann es nicht in Code-Tags schreiben, da ich nur ein Gast bin.
Puhh vielleicht schmeiß ich es doch in die Tonne, diese gereizte Stimmung demotivert.
Gast
 

Re: Berechnung von Max/Sum in einem

Beitragvon Beaker s.a. » 19. Okt 2019, 18:20

@Gast
Strings muss man verketten um zu brauchbaren Ergebnissen zu kommen
Code: Alles auswählen
… where SUM_BUCHUNGEN IN (select max(SUM_BUCHUNGEN) from (" & strSQL1 & "))"

gruss ekkehard

edit:
In der Zeile vorher entsprechend.
Zuletzt geändert von Beaker s.a. am 20. Okt 2019, 11:11, insgesamt 1-mal geändert.
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 741
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Re: Berechnung von Max/Sum in einem

Beitragvon Gast » 20. Okt 2019, 00:07

Hallo,
Ich kann es nicht in Code-Tags schreiben, da ich nur ein Gast bin.

doch,
Code: Alles auswählen
auch als Gast kann man die Codetags


benutzen.
Gast
 


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Yaslaw und 9 Gäste