Seite 1 von 1

GELÖST = In Abfrage eine Spalte aufsummieren

Verfasst: Mi, 29.06.2011 12:52
von Lord Nelson
Ich habe eine Abfrage erstellt:

3 Spalten:

Bezirk | Strasse | Haushalte |

Kriterium Bezirk: 12345

Funktion Haushalte: Summe

Jetzt möchte ich gerne, dass die Abfrage nur die Bezirksnummer 12345 anzeigt und mir zu dem Bezirk zugehörigen Haushalte aufsummiert. Als Ergebnis bekomme ich aber diese Fehlermeldung:
Das SQL-Kommando, welches zu diesem Fehler führte, ist:

SELECT "Bezirk", "Straße", SUM( "Haushalte" ) FROM "Bezirke-Straßen" WHERE "Bezirk" = 12345
Was läuft hier nun falsch?

Re: Abfrage: eine Spalte aufsummieren :-(

Verfasst: Mi, 29.06.2011 15:06
von arkadiuszpaluszek
Hallo!

Bin mir gerade nicht sicher ob es stimmt was ich hier schreibe, aber irgendwie habe ich den Eindruck, dass es an "SUM" liegt - ich habe es bisher nicht gesehen, dass man eine Funktion wie Summe direkt in die Abfrage einbinden würde ( was nicht heißen muss dass es nicht geht, ICH habe es nicht gesehen). Ich hätte es eher dadurch gelöst dass ich ein Makro geschrieben hätte welches alle Argumente summiert hätte.

Bin gespannt, was erfahrenere Leute als ich dazu schreiben werden!

Viele Grüße

Arek

Re: Abfrage: eine Spalte aufsummieren :-(

Verfasst: Mi, 29.06.2011 17:34
von pmoegenb
Lord Nelson hat geschrieben:
SELECT "Bezirk", "Straße", SUM( "Haushalte" ) FROM "Bezirke-Straßen" WHERE "Bezirk" = 12345
Die Fehlermeldung wäre natürlich auch interessant gewesen. Probiers mal mit folgender Syntax:

Code: Alles auswählen

SELECT "Bezirk", "Straße", SUM( "Haushalte" ) 
FROM "Bezirke-Straßen"
WHERE "Bezirk" = 12345 
GROUP BY  "Bezirk"

Re: Abfrage: eine Spalte aufsummieren :-(

Verfasst: Mi, 29.06.2011 23:16
von Lord Nelson
Dann kriege ich folgende Meldung:

SQL-Status: 37000
Fehler-Code: -67

Not in aggregate function or group by clause: org.hsqldb.Expression@1fda09d in statement [SELECT "Bezirk", "Straße", SUM( "Haushalte" ) FROM "Bezirke-Straßen" GROUP BY "Bezirk" HAVING ( ( "Bezirk" = 12345 ) )
Schade, das es nicht funktioniert hat. Arbeite sonst mit Access und da wäre es so wohl gegangen. :-(

Re: Abfrage: eine Spalte aufsummieren :-(

Verfasst: Do, 30.06.2011 05:59
von komma4
Lord Nelson hat geschrieben:Schade, das es nicht funktioniert hat. Arbeite sonst mit Access und da wäre es so wohl gegangen. :-(
Habe es die Tage hier schon mal geschrieben:

die Syntax aller Abfragen ist von der verwendeten Datenbank abhängig.

Bei der eingebauten HSQLDB Version 1.8 bedeutet dies, dass bei Verwendung von Aggregat-Funktionen (SUM, COUNT) alle nicht aggregierten abgefragten Spalten in der Gruppierung erscheinen müssen.

Ohne es getestet zu haben:

Code: Alles auswählen

SELECT "Bezirk", "Straße", SUM( "Haushalte" ) 
FROM "Bezirke-Straßen"
WHERE "Bezirk" = 12345 
GROUP BY  "Bezirk", "Straße"

Re: Abfrage: eine Spalte aufsummieren :-(

Verfasst: Fr, 01.07.2011 14:43
von Lord Nelson
Dankeschön. :D Thema gelöst. So funktionierte es, wie ich es mir wünschte: :D

Code: Alles auswählen

SELECT "Bezirk", SUM( "Haushalte" ) FROM "Bezirke-Straßen" GROUP BY "Bezirk"
Ist wohl schon zu lange her, dass ich mit Datenbanken gearbeitet habe. Nach Deiner Hilfe viel es mir dann wie Schuppen von den Augen, denn bei Access ist das so nicht anders.

Grüsse

Daniel