ERLEDIGT
NEIN
NEIN
ANTWORTEN
16
16
ZUGRIFFE
502
502
EMPFEHLEN
-
24.06.10 10:21 #1
- Registriert seit
- Aug 2003
- Beiträge
- 78
Moin!
ich bin langsam am verzweifeln. ich habe hier ein SQL-Statement.
Wenn ich das ausführe kommt nach der ersten Ausführung als Ergebnis immer "null".
Nach der 2. Ausführung sind die richtigen Ergebnisse da. Aber ich will das automatisieren und da kann ich keine "null"s gebrauchen.
Woran liegt das?!
Hier das Statement:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
SELECT id, name, status, DATE_FORMAT(enddate, '%Y-%m-%d %T') as enddate FROM ( SELECT id, status, enddate, name FROM ( SELECT id, name, status, @enddate := IF(@lastid = id, @tempdate, datum) AS enddate, @tempdate := datum, @lastid := id, @lastname := name FROM (SELECT @lastid:='', @lastname = '', @enddate = '', @tempdate = (Select datumFrom (Select * FROM test order by ID asc, datum desc limit 2) roh Order by id asc, datum asc limit 1)) AS vars, (SELECT * FROM test ORDER BY id asc, datum desc) AS daten ) AS daten ) AS daten WHERE status NOT LIKE 'TEST' AND owner LIKE 'TEST%' Order by id ASC
Danke schonmal
-
Moin,
ich würde das Problem auf den 1. Blick hierauf zurückführen:
Genau das tust du aber...du setzt in einem Query die Variablen und im selben Query willst du auch darauf zugreifen...was fehlschlagen dürfte.
Zitat von MySQL-Handbuch
Beim 2. Versuch sind dann die Variablen gesetzt.
-
24.06.10 10:48 #3
- Registriert seit
- Aug 2003
- Beiträge
- 78
mmh okay und hast du eine möglichkeit wie ich das umgehen kann?
-
Keine Ahnung, ob das in deinem Fall hilfreich ist, aber du könntest die Variablen vor dem 1. Versuch mit einem Standardwert belegen (geht über SET )
-
24.06.10 11:16 #5
- Registriert seit
- Aug 2003
- Beiträge
- 78
wo muss ich das dann hinschreiben?
-
Vor der 1.Anweisung(also der, die bisher den Fehler verursacht hat)...halt ein SET-Statement:
Code sql:1
SET @variable='wert';
-
24.06.10 11:39 #7
- Registriert seit
- Aug 2003
- Beiträge
- 78
mmh iwi bekomm ich das nicht hin... der sagt immer fehler fehler fehler O.o
-
Angesichts deiner detaillierten Fehlermeldung kann ich dir bei deinem Problem nicht weiterhelfen.
Wo ich dir aber weiterhelfen kann, ist bei dem Hinweis auf eine erwünschte Benutzung der SHIFT-Taste im Forum, was dich bei erfolgreicher Umsetzung in Zukunft vor einer Löschung deiner Beiträge bewahren wird.
Danke
-
24.06.10 13:03 #9
- Registriert seit
- Aug 2003
- Beiträge
- 78
Okay bitte entschuldige. Werde ich in Zukunft beachten..
Also ich weiß ja nicht ob du Talend Open Studio kennst, aber wenn ich das obere SQL-Statement mit dem SET ausführen will, kommt folgender Fehler:
Code :1 2 3 4 5 6 7 8 9 10
Exception in component tMysqlInput_2 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id, name, status, DATE_FORMAT(enddate, '%Y-%m-' at line 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1027) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2938) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1601) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1710) at com.mysql.jdbc.Connection.execSQL(Connection.java:2430) at com.mysql.jdbc.Connection.execSQL(Connection.java:2359) at com.mysql.jdbc.Statement.executeQuery(Statement.java:1227)
-
Keine Ahnung, was für ein Query du dort ausführst, die Fehlermeldung
Code :1
You have an error in your SQL syntax [......] [B]near 'SELECT id, name, status, DATE_FORMAT(enddate, '%Y-%m-' at line 1[/B]
.....bezieht sich jedenfalls nicht auf das von mir vorgeschlagene SET-Statement
-
24.06.10 13:15 #11
- Registriert seit
- Aug 2003
- Beiträge
- 78
Na ich habe das Statement von mir Oben ausgeführt. Allerdings habe ich über das erste SELECT dann deinen vorgeschlagenen SET-Befehl geschrieben...
Wenn ich das obere Statement in Aqua Data Studio ausführe kommt mit dem SET-Befehl der Fehler "You have an error in your SQL syntax.." und bei der Ausführung ohne den Befehl bekomme ich den Fehler: "Very low memory", was ja aber nichts mit TOS zu tun haben kann. Im Oracle SQL Developer passieren ähnlich Dinge
Ich bin am verzweifeln
-
-
24.06.10 13:32 #13
- Registriert seit
- Aug 2003
- Beiträge
- 78
Also wenn ich jetzt nur zum Probieren genau deinen Code ausprobiere kommt folgendes:
Code :1 2
>[Error] Script lines: 1-2 -------------------------- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @variable as variable' at line 2
-
Hast du das Statement so in PHPMyAdmin probiert?
Falls ja, welche MySQL-Version nutzt du?
Falls nein: dann musst du die beiden Statements in separaten Queries ausführen.
PHP-Beispiel:Code :1 2 3 4 5 6 7 8 9 10 11 12
<?php $link=mysql_connect('server','user','passwort') or die(mysql_error()); //Variable setzen mysql_query("SET @variable ='wert'") or die(mysql_error()); //Variable benutzen $result=mysql_query("SELECT @variable as ergebnis") or die(mysql_error()); echo mysql_result($result, 0); //Ausgabe: [B]wert[/B] ?>
-
24.06.10 13:58 #15
- Registriert seit
- Aug 2003
- Beiträge
- 78
ähm wie gesagt ich arbeite NICHT mit php sondern mit Java und will das ganze Spielchen dort benutzen...
Ähnliche Themen
-
SQL Statement auslösen und Ergebnis auslesen
Von Rico82 im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 03.09.10, 12:01 -
MySQL 5 - Tabelle verliert Datensätze nach komplexen Statement ?
Von TuxCommander im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 22.09.08, 21:18 -
Schleife von 1-20 danach soll Ergebnis angezeigt werden
Von Saimen im Forum JavaAntworten: 3Letzter Beitrag: 30.10.07, 08:52 -
PDO Prepared Statement - Zugriff auf Oracle liefert kein Ergebnis
Von mccoke im Forum PHPAntworten: 15Letzter Beitrag: 10.05.07, 12:03 -
PHPMyAdmin / Mysql 4.1.2 -> Daten nach SQL Statement exportieren
Von Mik3e im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 24.08.05, 11:11





Zitieren

Login





