Supportnet / Forum / Datenbanken
GROUP BY in einer Abfrage
Frage
Ich habe eine Abfrage erstellt. Dort habe ich eine Nummer, die keine ID, sondern eine Kategorie ist, der die Einträge zugeordnet sind. D.h. es können mehrere Einträge zur gleichen Kategorie sein, so daß dort manchmal die gleiche Zahl steht.
Nun will ich nach dieser Kategorie ordnen und habe deshalb folgende SQL-Anweisung für diese Abfrage geschrieben:
SELECT [Adressenliste].[Team-Nr], [Ergebnisse].[Serie 1], [Ergebnisse].[Serie 2], [Ergebnisse].[Serie 3], [Serie 1]+[Serie 2]+[Serie 3] AS Ausdr1
FROM Adressenliste LEFT JOIN Ergebnisse ON [Adressenliste].[Start-Nr]=[Ergebnisse].[Lfd-Nr]
GROUP BY [Adressenliste].[Team-Nr];
Immer wenn ich die Abfrage ausführen will, erscheint folgender Fehler:
"Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'Serie1' nicht in als Teil der Aggregatfunktion einschließt."
Woran liegt das bzw. was mache ich falsch?
Danke und mfG
Schnoof
Antwort 1 von JohnnyLoser
Hi Schnoof,
die Abfrage kann nicht funktionieren, da keiner der Ausdrücke 'Serie 1', 'Serie 2' oder 'Serie 3' Teil einer Aggregatfunktion sind.
D.h., bevor diese Werte als Ausdruck verwendet werden können, müssen alle in einer Aggregatfunktion, wie z.B Anzahl, Summe, Varianz, etc. eingeschlossen sein, bzw. gruppiert werden.
Ändere Deine Abfrage wie folgt:
SELECT [Adressenliste].[Team-Nr], [Ergebnisse].[Serie 1], [Ergebnisse].[Serie 2], [Ergebnisse].[Serie 3], [Serie 1]+[Serie 2]+[Serie 3] AS Ausdr1
FROM Adressenliste LEFT JOIN Ergebnisse ON [Adressenliste].[Start-Nr]=[Ergebnisse].[Lfd-Nr]
GROUP BY [Adressenliste].[Team-Nr], Ergebnisse.[Serie 1], Ergebnisse.[Serie 2], Ergebnisse.[Serie 3];
Alternativ kannst Du im Abfrageentwurf auch eine andere Funktion wählen, außer 'Ausdruck'.
Gruß
Johnny
die Abfrage kann nicht funktionieren, da keiner der Ausdrücke 'Serie 1', 'Serie 2' oder 'Serie 3' Teil einer Aggregatfunktion sind.
D.h., bevor diese Werte als Ausdruck verwendet werden können, müssen alle in einer Aggregatfunktion, wie z.B Anzahl, Summe, Varianz, etc. eingeschlossen sein, bzw. gruppiert werden.
Ändere Deine Abfrage wie folgt:
SELECT [Adressenliste].[Team-Nr], [Ergebnisse].[Serie 1], [Ergebnisse].[Serie 2], [Ergebnisse].[Serie 3], [Serie 1]+[Serie 2]+[Serie 3] AS Ausdr1
FROM Adressenliste LEFT JOIN Ergebnisse ON [Adressenliste].[Start-Nr]=[Ergebnisse].[Lfd-Nr]
GROUP BY [Adressenliste].[Team-Nr], Ergebnisse.[Serie 1], Ergebnisse.[Serie 2], Ergebnisse.[Serie 3];
Alternativ kannst Du im Abfrageentwurf auch eine andere Funktion wählen, außer 'Ausdruck'.
Gruß
Johnny
Antwort 2 von Schnoof
Danke Johnny!
Jetzt habe ich noch eine Frage:
Kann ich die Einträge, die dem gleichen Team zugeordnet sind, gleich zusammenaddieren? Wenn ja, wie?
Danke!
Schnoof
Jetzt habe ich noch eine Frage:
Kann ich die Einträge, die dem gleichen Team zugeordnet sind, gleich zusammenaddieren? Wenn ja, wie?
Danke!
Schnoof
Antwort 3 von JohnnyLoser
Hi Schnoof,
ich weiß jetzt natürlich nicht, was in Deinen Feldern Serie 1 bis 3 drinsteht. Ich gehe mal davon aus, daß es Zahlenwerte sind.
Was willst Du addieren?
Alle Werte der Serie 1?
Alle Werte der Serie 2?
Alle Werte der Serie 3?
oder alle Werte der Serie 1 + 2 + 3?
Wähle einfach im Abfrageentwurf als Funktion "Summe" für alle Felder ausgenommen "Team".
Vielleicht kannst Du mit dem Ergebnis schon was anfangen.
Ansonsten melde Dich noch mal.
Gruß
Johnny
ich weiß jetzt natürlich nicht, was in Deinen Feldern Serie 1 bis 3 drinsteht. Ich gehe mal davon aus, daß es Zahlenwerte sind.
Was willst Du addieren?
Alle Werte der Serie 1?
Alle Werte der Serie 2?
Alle Werte der Serie 3?
oder alle Werte der Serie 1 + 2 + 3?
Wähle einfach im Abfrageentwurf als Funktion "Summe" für alle Felder ausgenommen "Team".
Vielleicht kannst Du mit dem Ergebnis schon was anfangen.
Ansonsten melde Dich noch mal.
Gruß
Johnny
Antwort 4 von Schnoof
Sämtliche Spalten sind Zahlenwerte und es soll alles addiert werden, was zum gleichen Team gehört.
Aber es hat schon geholfen. Danke! Ich mußte noch mal kurz im SQL-Code rumpfuschen, aber nun ist alles so, wie ich es haben will.
Danke!
Schnoof
Aber es hat schon geholfen. Danke! Ich mußte noch mal kurz im SQL-Code rumpfuschen, aber nun ist alles so, wie ich es haben will.
Danke!
Schnoof

