Abfrage zu komplex?
Moderator: Moderatoren
Abfrage zu komplex?
Hallo,
Ich erhalte bei diesem Statement
"SELECT * FROM "Tabelle" AS "Tabelle" WHERE EXTRACT(MINUTE FROM "Zeitstempel") = 5"
die Fehlermeldung:
"Die Abfrage kann nicht ausgeführt werden. Sie ist zu komplex."
Mach' ich was verkehrt?
(komme mit der Anwendung von extract/convert/cast noch nicht wirklich klar)
Ein freundliches "?" !
Ich erhalte bei diesem Statement
"SELECT * FROM "Tabelle" AS "Tabelle" WHERE EXTRACT(MINUTE FROM "Zeitstempel") = 5"
die Fehlermeldung:
"Die Abfrage kann nicht ausgeführt werden. Sie ist zu komplex."
Mach' ich was verkehrt?
(komme mit der Anwendung von extract/convert/cast noch nicht wirklich klar)
Ein freundliches "?" !
Re: Abfrage zu komplex?
Aloha
Von der Syntax her ist das absolut OK.
Welche DB benutzt Du denn?
Von der Syntax her ist das absolut OK.
Welche DB benutzt Du denn?
Re: Abfrage zu komplex?
Ahoi,
Danke für die Antwort. Greife direkt mit BASE auf csv-Dateien zu. Also keine echte Datenbank.
Danke für die Antwort. Greife direkt mit BASE auf csv-Dateien zu. Also keine echte Datenbank.
Re: Abfrage zu komplex?
Aloha
Wie viele Spalten gibt es denn in dieser Datei?
Sollten es nicht allzuviele sein, würde ich mal vermuten, dass die Timestamp-Spalte in der csv-Datei aus irgendeinem Grund nicht richtig erkannt wird.
Die WHERE-Klausel mit Überprüfung eines Wertes, der nicht errechnet(extrahiert) werden kann, ist somit nicht möglich.
Das Statement wird kurzerhand für "zu komplex" erklärt.
Wie viele Spalten gibt es denn in dieser Datei?
Sollten es nicht allzuviele sein, würde ich mal vermuten, dass die Timestamp-Spalte in der csv-Datei aus irgendeinem Grund nicht richtig erkannt wird.
Die WHERE-Klausel mit Überprüfung eines Wertes, der nicht errechnet(extrahiert) werden kann, ist somit nicht möglich.
Das Statement wird kurzerhand für "zu komplex" erklärt.
Re: Abfrage zu komplex?
Also ca. 40 Spalten... . Ist doch "nicht allzuviele", oder?!
Die Timestamp-Spalte wurde richtig erkannt (Steht so zumindest in der Tabellendefinition). Werde morgen das ganze mit weniger Spalten probieren.
Die Timestamp-Spalte wurde richtig erkannt (Steht so zumindest in der Tabellendefinition). Werde morgen das ganze mit weniger Spalten probieren.
Re: Abfrage zu komplex?
40 Spalten sollten überhaupt kein Problem sein.
Hast Du mal versucht, ob auch das Format entsprechend anerkannt wird?
Schau mal, was Du für Ergebnisse mit
SELECT EXTRACT(MINUTE FROM "Zeitstempel") FROM "Tabelle"
(bzw. SELECT MINUTE("Zeitstempel") FROM "Tabelle")
bekommst. Dann kannst Du schonmal sehen, ob die Timestamp-Spalte tatsächlich richtig erkannt wurde.
Sollte das Ergebnis ein leeres Feld sein, müsstest Du mal das Format Deiner csv-Datei anschauen.
Zwischen den Feldtrennern und dem Feldinhalt sollte kein Leerzeichen sein.
Würde z.B. bei einem "SELECT "SpalteB" from Tabelle" leere Felder als Ergebnis bringen, da SpalteB nicht "SpalteB" heisst, sondern " SpalteB" (also mit Leerzeichen zu Beginn des Feldnamens).
Sollte dies der Fall sein, müsste Deine Abfrage folgendermassen
SELECT * FROM "Tabelle" AS "Tabelle" WHERE MINUTE(" Zeitstempel") = 5
funktionieren.
Hast Du mal versucht, ob auch das Format entsprechend anerkannt wird?
Schau mal, was Du für Ergebnisse mit
SELECT EXTRACT(MINUTE FROM "Zeitstempel") FROM "Tabelle"
(bzw. SELECT MINUTE("Zeitstempel") FROM "Tabelle")
bekommst. Dann kannst Du schonmal sehen, ob die Timestamp-Spalte tatsächlich richtig erkannt wurde.
Sollte das Ergebnis ein leeres Feld sein, müsstest Du mal das Format Deiner csv-Datei anschauen.
Zwischen den Feldtrennern und dem Feldinhalt sollte kein Leerzeichen sein.
Code: Alles auswählen
SpalteA, SpalteB, SpalteC
Wert1, Wert2, Wert3
Sollte dies der Fall sein, müsste Deine Abfrage folgendermassen
SELECT * FROM "Tabelle" AS "Tabelle" WHERE MINUTE(" Zeitstempel") = 5
funktionieren.
Re: Abfrage zu komplex?
Das Problem liegt vermutlich hier:
Gruß Barlee
Überführe die csv in eine Base-Tabelle und frage die Tabelle direkt abGreife direkt mit BASE auf csv-Dateien zu. Also keine echte Datenbank.
Gruß Barlee
Re: Abfrage zu komplex?
Bei mir (Windows XP, OOo 3.1.1) funktionieren derlei Sachen auch, wenn ich die csv-Dateien direkt als Datenquelle benutze.
Das Problem muss also eigentlich woanders liegen.
Das Problem muss also eigentlich woanders liegen.
Re: Abfrage zu komplex?
OOo 3.2 mit externer csv >> "...TOO COMPLEX" >> selbst bei 2 Spalten ??Bei mir (Windows XP, OOo 3.1.1) funktionieren derlei Sachen auch, wenn ich die csv-Dateien direkt als Datenquelle benutze.
Re: Abfrage zu komplex?
Das kann ich natürlich nicht beurteilen, da ich OOo 3.2 weder kenne noch je kennenlernen werde.
Möglicherweise ist es ja tatsächlich ein Fehler, der in der neuen Version auftritt?
Aber in diesem Zusammenhang würde mich einfach mal der genaue Aufbau der csv-Datei sowie die Abfrage interessieren, die Dir diese Fehlermeldung gibt.
Möglicherweise ist es ja tatsächlich ein Fehler, der in der neuen Version auftritt?
Aber in diesem Zusammenhang würde mich einfach mal der genaue Aufbau der csv-Datei sowie die Abfrage interessieren, die Dir diese Fehlermeldung gibt.
Re: Abfrage zu komplex?
csv-Name: Textdatei.csv
ID;Datum;Wert
1;01.12.2010 00:03:00;5
2;05.04.2009 00:30:00;4
3;06.06.2004 00:10:00;6
4;05.07.2010 00:30:00;9
5;06.03.2005 00:45:00;8
Abfrage Standard
SELECT * FROM Textdatei WHERE EXTRACT(MINUTE FROM Datum) =10
ID;Datum;Wert
1;01.12.2010 00:03:00;5
2;05.04.2009 00:30:00;4
3;06.06.2004 00:10:00;6
4;05.07.2010 00:30:00;9
5;06.03.2005 00:45:00;8
Abfrage Standard
SELECT * FROM Textdatei WHERE EXTRACT(MINUTE FROM Datum) =10
Re: Abfrage zu komplex?
Tatsächlich, bei dieser Abfrage über diese Tabelle kriege ich eine "zu komplex"-Fehlermeldung.
Mit
SELECT * FROM Textdatei WHERE MINUTE(Datum) = 10
allerdings funktioniert alles wie gewünscht.
Ist für mich im Moment nicht ganz nachvollziehhbar.
Ich habe allerdings bisher auch noch nie die EXTRACT-Funktion benutzt, warum gerade diese HSQLDB in die Knie zwingt, kann ich nicht sagen.
Mit
SELECT * FROM Textdatei WHERE MINUTE(Datum) = 10
allerdings funktioniert alles wie gewünscht.
Ist für mich im Moment nicht ganz nachvollziehhbar.
Ich habe allerdings bisher auch noch nie die EXTRACT-Funktion benutzt, warum gerade diese HSQLDB in die Knie zwingt, kann ich nicht sagen.
Großartig.
Vielen Dank. Habt mir sehr geholfen. Mit der letzen Formulierung funktioniert's!