Hallo,
habe eine Abfrage und möchte alle Datensätze sehen und zusätzlich für eine Spalte die Gesamtsumme errechnen.
Eine Abfrage mit allen Datensätzen kann ich. Eine weitere Abfrage mit der Gesamtsumme ohne alle Datensätze zu sehen kann ich auch.
Jetzt habe ich im Forum gesucht und dann einiges ausprobiert :
1. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" ORDER BY "Standort" ASC
hat diesen Fehler:
Anhang 1
2. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" ORDER BY "Standort" ASC GROUP BY "Standort"
hat Fehler: Anhang 2
3. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" GROUP BY "Standort"
hat Fehler: Anhang 3
4. Versuch
SELECT "Standort", "Beschreibung", "WB_Kosten" FROM "Anlagegueter" ORDER BY "Standort" ASC
UNION
SELECT SUM( "WB_Kosten" ) FROM "Anlagegueter"
hat Fehler: Der eingesetzte Befehl ist kein ist kein SELECT-Befehl. Es sind nur abfragen erlaubt.
Wie man sieht bin ich nicht erfahren in SQL. Kann mir jemand helfen ?
Abfrage mit Summe einer Spalte
Moderator: Moderatoren
Abfrage mit Summe einer Spalte
- Dateianhänge
-
- Base_Versuch_3.JPG (18.99 KiB) 3023 mal betrachtet
-
- Base_Versuch_2.JPG (9.34 KiB) 3023 mal betrachtet
-
- Base_Versuch_1.JPG (19.3 KiB) 3023 mal betrachtet
Open Office 4.0.1
Windows 7 home premium SP 1
Windows 7 home premium SP 1
Re: Abfrage mit Summe einer Spalte
Aloha
Die Fehlermeldung sagt Dir, dass Base den Befehl UNION nicht versteht. Du müsstest dafür das Häkchen in der Symbolleiste bei "SQL-Kommando direkt ausführen" setzen.
Die richtige Syntax wäre:
Googlen mit dem Stichwort "Aggregatfunktion" sollte unendlich viele Seiten auswerfen, auf denen Du Dich dazu näher informieren kannst.
SUM ist eine Aggregatfunktion, die so nicht verwendet werden kann - es fehlt die Angabe, unter welchen Kriterien die Summe gebildet werden soll (Du weisst ja, dass Du für jeden Standort die entsprechende Summe haben willst, aber woher soll die Datenbank das wissen?)bello15 hat geschrieben:1. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" ORDER BY "Standort" ASC
Unter anderem gleicher Fehler wie oben (Gruppierung nach "Beschreibung"), dazu noch falsche Reihenfolge - ORDER BY ans Ende.bello15 hat geschrieben:2. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" ORDER BY "Standort" ASC GROUP BY "Standort"
Auch hier fehlt die Gruppierung über "Beschreibung".bello15 hat geschrieben:3. Versuch
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" GROUP BY "Standort"
UNION schreibt die Ergebnisse untereinander - dafür ist zwingend erforderlich, dass beide Ergebnisse die gleiche Anzahl an Spalten haben ("Standort", "Beschreibung", "WB_Kosten" = 3 Spalten, SUM( "WB_Kosten" ) = 1 Spalte).bello15 hat geschrieben:4. Versuch
SELECT "Standort", "Beschreibung", "WB_Kosten" FROM "Anlagegueter" ORDER BY "Standort" ASC
UNION
SELECT SUM( "WB_Kosten" ) FROM "Anlagegueter"
Die Fehlermeldung sagt Dir, dass Base den Befehl UNION nicht versteht. Du müsstest dafür das Häkchen in der Symbolleiste bei "SQL-Kommando direkt ausführen" setzen.
Die richtige Syntax wäre:
Code: Alles auswählen
SELECT "Standort","Beschreibung",SUM("WB_Kosten") FROM "Anlagegueter" GROUP BY "Standort", "Beschreibung" ORDER BY "Standort" ASC
Re: Abfrage mit Summe einer Spalte
Hallo DPunch,schönen Dank für Deinen Beitrag, sehe jetzt etwas klarer.
Habe Deinen Vorschlag
-->SELECT "Standort", "Beschreibung", SUM("WB_Kosten") FROM "Anlagegueter" GROUP BY "Standort", "Beschreibung" ORDER BY "Standort" ASC
ausgeführt-
leider ist das Ergebnis ohne jede Gruppierung und leider auch ohne die von mir gesuchte Summe.
Wegen des Versuches mit UNION habe ich das ausprobiert:
SELECT "Standort", "Beschreibung", "WB_Kosten" FROM "Anlagegueter" ORDER BY "Standort" ASC
UNION
SELECT "Standort", "Beschreibung", SUM("WB_Kosten") FROM "Anlagegueter"
da kommt : wenn ich aus dem SQL Fenster die Abfrage starte ist der letzt Datensatz doppelt, aber im Feld WB_Kosten tatsächlich die gesucht Totalsumme.
wenn ich die Abfrage aus dem Abfrage-Fenster starte bekomme ich den Fehler "Not in aggregate function or group by clause: org.hsqldb.expression@16068c9 in statement[hier steht meine Abfrage]
Hast Du evtl. noch eine Idee ?
Schon vorab vielen Dank.
Habe Deinen Vorschlag
-->SELECT "Standort", "Beschreibung", SUM("WB_Kosten") FROM "Anlagegueter" GROUP BY "Standort", "Beschreibung" ORDER BY "Standort" ASC
ausgeführt-
leider ist das Ergebnis ohne jede Gruppierung und leider auch ohne die von mir gesuchte Summe.
Wegen des Versuches mit UNION habe ich das ausprobiert:
SELECT "Standort", "Beschreibung", "WB_Kosten" FROM "Anlagegueter" ORDER BY "Standort" ASC
UNION
SELECT "Standort", "Beschreibung", SUM("WB_Kosten") FROM "Anlagegueter"
da kommt : wenn ich aus dem SQL Fenster die Abfrage starte ist der letzt Datensatz doppelt, aber im Feld WB_Kosten tatsächlich die gesucht Totalsumme.
wenn ich die Abfrage aus dem Abfrage-Fenster starte bekomme ich den Fehler "Not in aggregate function or group by clause: org.hsqldb.expression@16068c9 in statement[hier steht meine Abfrage]
Hast Du evtl. noch eine Idee ?
Schon vorab vielen Dank.
Open Office 4.0.1
Windows 7 home premium SP 1
Windows 7 home premium SP 1
Re: Abfrage mit Summe einer Spalte
Aloha
Wenn es Dir um die völlig unabhängige Totalsumme geht:
Natürlich ist das Ergebnis mit Gruppierung. Wenn alle Datensätze in Bezug auf Standort und/oder Beschreibung unterschiedliche Werte haben, siehst Du sie halt nicht.bello15 hat geschrieben:leider ist das Ergebnis ohne jede Gruppierung
Genau den Fehler und seine Ursache hatte ich versucht, Dir klar zu machen - siehe meinen vorherigen Post.bello15 hat geschrieben:wenn ich die Abfrage aus dem Abfrage-Fenster starte bekomme ich den Fehler "Not in aggregate function or group by clause: org.hsqldb.expression@16068c9 in statement[hier steht meine Abfrage]
Da hatte ich wohl missverstanden, dass Du die absolute Totalsumme haben wolltest, nicht die vom zugehörigen Standort.bello15 hat geschrieben:aber im Feld WB_Kosten tatsächlich die gesucht Totalsumme.
Wenn es Dir um die völlig unabhängige Totalsumme geht:
Code: Alles auswählen
SELECT "Standort","Beschreibung",(SELECT SUM("WB_Kosten") FROM "Anlagegueter") FROM "Anlagegueter" ORDER BY "Standort" ASC
Re: Abfrage mit Summe einer Spalte
Hallo Dpunch,
mit Deiner Hilfe habe ich das
--> (SELECT SUM("WB_Kosten") FROM "Anlagegueter")
eingebaut und jetzt geht es.
Vielen Dank !
mit Deiner Hilfe habe ich das
--> (SELECT SUM("WB_Kosten") FROM "Anlagegueter")
eingebaut und jetzt geht es.
Vielen Dank !
Open Office 4.0.1
Windows 7 home premium SP 1
Windows 7 home premium SP 1