Access: gruppieren/summe von daten

Hallo Leute,

ich weiß, Daten gruppieren und Summieren ist wahrscheinlich das simpelste an Access-Funktionen… Ich habs eigentlich auch schon 1000mal in der Schule gemacht. Aber jetzt sitz ich an der Arbeit und bin seit 2 Tagen nurnoch am Ausraste, weil nix geht mit Access ]:frowning:

Folgendes:

Ich hab eine Spalte mit Namen und eine mit Werten. Einige Namen kommen öfter vor. Und ich will jetzt eine Abfrage machen, die mir für jeden Namen den Gesamtwert ausgibt… Quasi:

a = 1
a=2
a=3
b=4
c=5
c=6

Abfrageergebnis:

a 6
b 4
c 11

So -
Ich habs mit Gruppierung versucht - im Entwurfsmodus und SQL - und es kommt immer ein und derselbe Fehler:

„Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck „Wert“ nicht als Teil der Aggregatfunktion einschließt“

-und das seit 2 Tagen, egal was ich mache!!! -auch bei einer anderen Abfrage, die ich in der Datenbank erstellt habe…

kann mir mal bitte jemand helfen, bevor ich access deinstalliere?

mfg uschi

Moin, uschi,

SELECT Tabelle3.code, Sum(Tabelle3.wert) AS [Summe von wert]
FROM Tabelle3
GROUP BY Tabelle3.code;

Hast du vieleicht die Spalte Code {a, b, c} im Select vergessen?

Gruß Ralf

Hey Ralf,

also ich hab alles SELECTed, was ich brauche.
Und mein Code ist im Prinzip auch so wie deiner, funktioniert aber trotzdem nicht.
Liegt es vielleicht daran, dass es 2 unterschiedliche Tabellen sind, wo die Werte her kommen? Da ich die aber in ne Beziehung gesetzt habe, sollte seh ich da kein Problem drin.
Hier mal der SQL Code.

SELECT tBestellung.PSP_Element, tRechnungen.Angebotspreis, Sum(tRechnungen.Angebotspreis) AS Summe
FROM tBestellung INNER JOIN tRechnungen ON tBestellung.Referenznummer = tRechnungen.Referenznummer
GROUP BY (tRechnungen.Angebotspreis);

Moin, uschi,

mir scheint, hier liegt der Hund begraben:

SELECT tRechnungen.Angebotspreis,
Sum(tRechnungen.Angebotspreis) AS Summe

da steht der Angebotspreis als Einzelwert neben der Summe der Angebotspreise. Ich glaube nicht, dass das SQL nach einem Wert gruppieren kann, der in die Summenformel eingeht.

Ah - jetzt ist der Groschen gefallen. Schreib SELECT distinct tRechnungen.Angebotspreis, dann flutscht es.

Deine Abfrage produziert für jeden vorhandenen Preis eine Zeile, da wird nie eine Gruppe draus :smile:

Gruß Ralf

Hey Ralf,

jo, die Variante funktioniert auch nicht…
auch nich wenn ich die 2. Spalte weg mache, wo die werte nochmal angezeigt werden.

SELECT distinct (tBestellung.PSP_Element), Sum(tRechnungen.Angebotspreis) AS [Summe]
FROM tBestellung INNER JOIN tRechnungen ON tBestellung.Referenznummer = tRechnungen.Referenznummer
GROUP BY (tRechnungen.Angebotspreis);

-(

LG Uschi

Hi Uschi,

jo, die Variante funktioniert auch nicht…

kann auch nicht. Du möchtest nach tRechnungen.Angebotspreis gruppieren? Dann muss die Spalte im SELECT aufgeführt werden (das besagt übrigens die geheimnisvolle Meldung). Für sich allein ist das aber sinnlos, weil damit nicht verdichtet wird - das Ergebnis des SELECT ist 1:1 die Tabelle selbst. Also schreibe ich distinct tRechnungen.Angebotspreis, dann bekomme ich nur die unterschiedlichen Ausprägungen und kann nach denen gruppieren. Vorausgesetzt, dass ich das Problem richtig verstanden habe und tatsächlich danach gruppiert werden soll.

Gruß Ralf

Hey Ralf,

ohje, das war natürlich nur ein Schreibfehler, dass ich nach dem Angebotspreis gruppieren wollte.
Jetzt funktionierts auch - obwohl ich mir fast nicht vorstellen kann, dass ich den gleichen Fehler vorher schonmal gemacht habe. Naja, wer weiß woran es da gelegen hat.

Also Danke für deine Hilfe.

LG Uschi