GELÖST = In Abfrage eine Spalte aufsummieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Lord Nelson
*
Beiträge: 19
Registriert: Fr, 10.06.2011 19:40

GELÖST = In Abfrage eine Spalte aufsummieren

Beitrag 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?
Zuletzt geändert von Lord Nelson am Fr, 01.07.2011 14:44, insgesamt 1-mal geändert.
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Abfrage: eine Spalte aufsummieren :-(

Beitrag 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
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Abfrage: eine Spalte aufsummieren :-(

Beitrag 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"
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Lord Nelson
*
Beiträge: 19
Registriert: Fr, 10.06.2011 19:40

Re: Abfrage: eine Spalte aufsummieren :-(

Beitrag 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. :-(
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfrage: eine Spalte aufsummieren :-(

Beitrag 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"
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Lord Nelson
*
Beiträge: 19
Registriert: Fr, 10.06.2011 19:40

Re: Abfrage: eine Spalte aufsummieren :-(

Beitrag 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
Antworten