hi zusammen,
ich habe eine Abfrage erstellt, sobald ich bei der Funktion z.B. die Summe einer Spalte ausgeben lassen will erscheint folgende Fehlermeldung: "Die Dateninhalte konnten nicht geladen werden. Not in aggregate function or group by clause: org.hsqldb.Expression@11456c5 in statement [SELECT "ID", "Landuse", "IDn", SUM("Area"), "Residential", "Industrial" FROM "FreiburgNeu2"]
mac-Version
3.3.0
OOO330M20 (Build: 9567)
Weiss hierzu jemand mehr?
Mach ich hier einen blöden Anfängerfehler?
Bin über jeden Hinweis sehr dankbar,
beste Grüsse und vielen Dank im Voraus,
phil
Abfrage Funktion Fehlermeldung: Dateninhalte konnten nicht .
Moderator: Moderatoren
Re: Abfrage Funktion Fehlermeldung: Dateninhalte konnten nic
Hallo Phil,
blöde Fehler gibt es nicht. Fehler sind dazu da gemacht zu werden, damit Du und alle anderen daraus lernen.
Wenn Du
eingibst, dann wird die Abfrage funktionieren. Aber willst Du wirklich alles zusammenzählen?
Wenn Du
eingibst, werden immer die Werte aus "Area" aufsummiert, die den gleichen Eintrag bei "Industrial" haben.
Die Funktion SUM() braucht also bei anderen Feldern in der Abfrage jeweils eine Gruppierung. Womit ich beim Original Deiner Abfrage bin:
Hier fehlen die Gruppierungen für "ID", "Landuse" usw. - machen aber auch vermutlich keinen Sinn, da ich hinter dem Feld "ID" den Primärschlüssel vermute. Und der Primärschlüssel ist nun einmal einzigartig. Da kann dann auch keine Summe über irgendetwas noch gebildet werden.
Du musst Dir also überlegen: Von welchem Bereich möchte ich die Summe haben? Danach muss ich gruppieren und alle anderen Bereiche haben in der Abfrage nichts zu suchen. Oder will ich etwa wirklich die Gesamtsumme haben. Dann geht das so:
Du würdest also eine Abfrage in eine andere Abfrage einbauen. Das geht nur, wenn die Abfrage einen eindeutigen Wert liefert.
Gruß
Robert
blöde Fehler gibt es nicht. Fehler sind dazu da gemacht zu werden, damit Du und alle anderen daraus lernen.
Wenn Du
Code: Alles auswählen
SELECT SUM("Area") FROM "FreiburgNeu2"
Wenn Du
Code: Alles auswählen
SELECT SUM("Area"), "Industrial" FROM "FreiburgNeu2" GROUP BY "Industrial"
Die Funktion SUM() braucht also bei anderen Feldern in der Abfrage jeweils eine Gruppierung. Womit ich beim Original Deiner Abfrage bin:
Code: Alles auswählen
SELECT "ID", "Landuse", "IDn", SUM("Area"), "Residential", "Industrial" FROM "FreiburgNeu2"
Du musst Dir also überlegen: Von welchem Bereich möchte ich die Summe haben? Danach muss ich gruppieren und alle anderen Bereiche haben in der Abfrage nichts zu suchen. Oder will ich etwa wirklich die Gesamtsumme haben. Dann geht das so:
Code: Alles auswählen
SELECT "ID", "Landuse", "IDn", (SELECT SUM("Area") FROM "FreiburgNeu2") AS "Areasumme", "Residential", "Industrial" FROM "FreiburgNeu2"
Gruß
Robert
SELECTs verbinden, Export nach .calc, .txt
hallo robert,
vielen Dank für die ausführlichen Infos! Diese bringen mich schon ein Stück weiter.
Die Abfrage soll für die Spalten "Residential" und "Industrial" die aufsummierten Werte nach den IDn wiedergeben, so dass die Abfrage folgendermassen aussehen würde:
SUM ("FreiburgNeu2"."Industrial")/SUM("FreiburgNeu2"."Residential")/IDn
30/20/1
10/20/2
.../.../3
.../.../4 usw.
//Die ursprüngliche Tabelle "FreiburgNeu2" sieht folgendermassen aus (Spalte: Residential und Industrial beinhalten die Fläche von Area, Spalte Area ist eigentlich überflüssig):
ID/Landuse/IDn/Area/Residential/Industrial/
1/industrial/1/10/0/10
2/indutrial/1/20/0/20
3/residential/1/20/20/0
4/residential/2/10/10/0
5/residential/2/10/10/0
6/indutrial/2/10/0/10
//
SELECT SUM("Industrial"), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
-->liefert die aufsummierten Werte nach IDn für die Spalte "Industrial"
SELECT SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
-->-->liefert die aufsummierten Werte nach IDn für die Spalte "Residential"
1. Wie kann ich die beiden SELECT's verbinden, dass ich das Ergebnis ein einer Abfrage hinkriege?
Oder geht dies so gar nicht?
Mehrere Versuche sind fehlgeschlagen: z.B.:
-die beiden SELECT's einfach mit einem Komma verbinden:
SELECT SUM("Industrial")FROM "FreiburgNeu2" GROUP BY "IDn", SELECT SUM("Residential") FROM "FreiburgNeu2" GROUP BY "IDn"
oder
SELECT "Landuse",(SELECT SUM("Industrial")FROM "FreiburgNeu2" GROUP BY "IDn"), (SELECT SUM("Residential") FROM "FreiburgNeu2" GROUP BY "IDn") FROM "FreiburgNeu2"
2. Danach möchte ich die Abfrage nach .calc oder .txt exportieren, um die Daten ins Geographische Informationssystem (QGIS) einzulesen zu können.
Geht der Export nur über ein Formular?
Über eine Antwort wäre ich sehr froh.
Beste Grüsse
phil
vielen Dank für die ausführlichen Infos! Diese bringen mich schon ein Stück weiter.
Die Abfrage soll für die Spalten "Residential" und "Industrial" die aufsummierten Werte nach den IDn wiedergeben, so dass die Abfrage folgendermassen aussehen würde:
SUM ("FreiburgNeu2"."Industrial")/SUM("FreiburgNeu2"."Residential")/IDn
30/20/1
10/20/2
.../.../3
.../.../4 usw.
//Die ursprüngliche Tabelle "FreiburgNeu2" sieht folgendermassen aus (Spalte: Residential und Industrial beinhalten die Fläche von Area, Spalte Area ist eigentlich überflüssig):
ID/Landuse/IDn/Area/Residential/Industrial/
1/industrial/1/10/0/10
2/indutrial/1/20/0/20
3/residential/1/20/20/0
4/residential/2/10/10/0
5/residential/2/10/10/0
6/indutrial/2/10/0/10
//
SELECT SUM("Industrial"), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
-->liefert die aufsummierten Werte nach IDn für die Spalte "Industrial"
SELECT SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
-->-->liefert die aufsummierten Werte nach IDn für die Spalte "Residential"
1. Wie kann ich die beiden SELECT's verbinden, dass ich das Ergebnis ein einer Abfrage hinkriege?
Oder geht dies so gar nicht?
Mehrere Versuche sind fehlgeschlagen: z.B.:
-die beiden SELECT's einfach mit einem Komma verbinden:
SELECT SUM("Industrial")FROM "FreiburgNeu2" GROUP BY "IDn", SELECT SUM("Residential") FROM "FreiburgNeu2" GROUP BY "IDn"
oder
SELECT "Landuse",(SELECT SUM("Industrial")FROM "FreiburgNeu2" GROUP BY "IDn"), (SELECT SUM("Residential") FROM "FreiburgNeu2" GROUP BY "IDn") FROM "FreiburgNeu2"
2. Danach möchte ich die Abfrage nach .calc oder .txt exportieren, um die Daten ins Geographische Informationssystem (QGIS) einzulesen zu können.
Geht der Export nur über ein Formular?
Über eine Antwort wäre ich sehr froh.
Beste Grüsse
phil
Re: Abfrage Funktion Fehlermeldung: Dateninhalte konnten nic
Hallo Phil,
warum nicht beide direkt zusammenfassen?
SELECT SUM("Industrial"), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
SELECT SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
Wird zusammen zu
SELECT SUM("Industrial"), SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
Das Feld, das nicht mit einer Funktion abgefragt wird, wird in der Gruppierung berücksichtigt. Es gahen also auch mehrere Funktionen in einer Abfrage.
Gruß
Robert
warum nicht beide direkt zusammenfassen?
SELECT SUM("Industrial"), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
SELECT SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
Wird zusammen zu
SELECT SUM("Industrial"), SUM( "Residential" ), "IDn" FROM "FreiburgNeu2" GROUP BY "IDn"
Das Feld, das nicht mit einer Funktion abgefragt wird, wird in der Gruppierung berücksichtigt. Es gahen also auch mehrere Funktionen in einer Abfrage.
Gruß
Robert
Re: Abfrage Funktion Fehlermeldung: Dateninhalte konnten nic
hallo robert,
ja klar so muss es sein! Herzlichen Dank für die Rückmeldungen, hat mir sehr viel gebracht und so langsam beginne ich dank Deinen Hinweisen die Logik von den SQL-Befehlen zu verstehen, merci vielmals.
Momentan plagt mich nur noch wie ich die Resultat als .calc oder .txt exportieren kann, damit ich die lange Ausgabeliste von jeweils ca. 120 IDn nicht von Hand ins Geographische Informationssystem übertragen muss. Speziell, da bei jeder Änderung die Daten von Hand wieder zu ändern wären.
Zum Export habe ich folgendes gefunden:
-1. Formular erstellen und öffnene, 2. Datei>senden: →leider stehen dort keine .txt oder .calc-Dateien zur Verfügung
-2. Base-Abfrage in .Calc ausgeben (über ein Makro):
viewtopic.php?f=18&t=41421
Ist der oben unter Punkt 2 (über ein Makro) erwähnte Export die einzige Möglichkeit?
... ui, da habe ich absolut keine Erfahrung. Scheint ja nicht gerade einfach zu werden ;(
Vielleicht hast Du zum Export der Abfrage nach .calc oder .txt eine Idee oder selbst Erfahrungen gesammelt?
Werde noch etwas im Forum rumsuchen vielleicht gibt’s eine einfachere Variante/Möglichkeit des Exportes?
Jedenfalls möchte ich mich für Deine lehrreichen und ausführlichen Informationen herzlichst bedanken.
phil
ja klar so muss es sein! Herzlichen Dank für die Rückmeldungen, hat mir sehr viel gebracht und so langsam beginne ich dank Deinen Hinweisen die Logik von den SQL-Befehlen zu verstehen, merci vielmals.
Momentan plagt mich nur noch wie ich die Resultat als .calc oder .txt exportieren kann, damit ich die lange Ausgabeliste von jeweils ca. 120 IDn nicht von Hand ins Geographische Informationssystem übertragen muss. Speziell, da bei jeder Änderung die Daten von Hand wieder zu ändern wären.
Zum Export habe ich folgendes gefunden:
-1. Formular erstellen und öffnene, 2. Datei>senden: →leider stehen dort keine .txt oder .calc-Dateien zur Verfügung
-2. Base-Abfrage in .Calc ausgeben (über ein Makro):
viewtopic.php?f=18&t=41421
Ist der oben unter Punkt 2 (über ein Makro) erwähnte Export die einzige Möglichkeit?
... ui, da habe ich absolut keine Erfahrung. Scheint ja nicht gerade einfach zu werden ;(
Vielleicht hast Du zum Export der Abfrage nach .calc oder .txt eine Idee oder selbst Erfahrungen gesammelt?
Werde noch etwas im Forum rumsuchen vielleicht gibt’s eine einfachere Variante/Möglichkeit des Exportes?
Jedenfalls möchte ich mich für Deine lehrreichen und ausführlichen Informationen herzlichst bedanken.
phil
export nach .calc
hallo robert,
ich hab nun doch eine einfache Variante gefunden die Abfrage in .calc zu exportieren:
1. ein leeres .calc-Dokument öffnen
2. das Abfrage Icon "Name der Abfrage: z.B. "IndustrialResidential" einfach in eine Zelle des leeren .calc-Dokumentes ziehen
-->et voilà die Abfrage-Daten sind im .calc
Aber das hast Du sicherlich schon gewusst...
Beste Grüsse
phil
ich hab nun doch eine einfache Variante gefunden die Abfrage in .calc zu exportieren:
1. ein leeres .calc-Dokument öffnen
2. das Abfrage Icon "Name der Abfrage: z.B. "IndustrialResidential" einfach in eine Zelle des leeren .calc-Dokumentes ziehen
-->et voilà die Abfrage-Daten sind im .calc

Aber das hast Du sicherlich schon gewusst...
Beste Grüsse
phil