Abfrage zu komplex?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abfrage zu komplex?

Großartig.

von absti » Mi, 24.03.2010 08:59

Vielen Dank. Habt mir sehr geholfen. Mit der letzen Formulierung funktioniert's!

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 21:27

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.

Re: Abfrage zu komplex?

von Barlee » Di, 23.03.2010 21:06

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

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 20:25

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.

Re: Abfrage zu komplex?

von Barlee » Di, 23.03.2010 20:20

Bei mir (Windows XP, OOo 3.1.1) funktionieren derlei Sachen auch, wenn ich die csv-Dateien direkt als Datenquelle benutze.
OOo 3.2 mit externer csv >> "...TOO COMPLEX" >> selbst bei 2 Spalten ??

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 19:39

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.

Re: Abfrage zu komplex?

von Barlee » Di, 23.03.2010 19:12

Das Problem liegt vermutlich hier:
Greife direkt mit BASE auf csv-Dateien zu. Also keine echte Datenbank.
Überführe die csv in eine Base-Tabelle und frage die Tabelle direkt ab

Gruß Barlee

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 18:25

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.

Code: Alles auswählen

SpalteA, SpalteB, SpalteC
Wert1, Wert2, Wert3
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.

Re: Abfrage zu komplex?

von absti » Di, 23.03.2010 17:04

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.

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 15:46

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.

Re: Abfrage zu komplex?

von absti » Di, 23.03.2010 13:58

Ahoi,

Danke für die Antwort. Greife direkt mit BASE auf csv-Dateien zu. Also keine echte Datenbank.

Re: Abfrage zu komplex?

von DPunch » Di, 23.03.2010 13:48

Aloha

Von der Syntax her ist das absolut OK.

Welche DB benutzt Du denn?

Abfrage zu komplex?

von absti » Di, 23.03.2010 11:29

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 "?" !

Nach oben