bigpoint Geschrieben 31. Mai 2003 Teilen Geschrieben 31. Mai 2003 Schon wieder ein prob Ich habe in eine Tabelle1 eine SpalteS und dort steht ein Zahl zB 35011004 in eine andere Tabelle2 ist auch eine SpalteS wo steht auch ein Zahl Jetzt muß ich solange in der Tabele2 SpalteS einen Satz suchen bis gefunden. Die regeln sind so: wenn in der Tabele2 SpalteS die Zahl 35011004 nicht gefunden ist zahl um zwie von rechts kürzen und weiter suchen so habe ich es versucht funk aber leider noch nicht richtig ;( declare x_cursor cursor for select x from Tabele1 where ..... open x_cursor fetch next from x_cursor into @ SpalteS while @@fetch_status = 0 begin set @x =@x/100 fetch next from x_cursor into @x if exists (select bed from Tabele2 where SpaleS=@SpalteS) begin ...... end fetch next from x_cursor into @ SpalteS end close x_cursor deallocate x_cursor [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 1. Juni 2003 Teilen Geschrieben 1. Juni 2003 Hi, wo kommt der erste Wert für @x her ? Du settzt am anfang der Bedingung @x = @x/100 hast aber X noch keinem Wert zugewiesen., oder fehlt da noch ein Teil des Codes ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Juni 2003 Autor Teilen Geschrieben 1. Juni 2003 Original geschrieben von Panther Hi, wo kommt der erste Wert für @x her ? Du settzt am anfang der Bedingung @x = @x/100 hast aber X noch keinem Wert zugewiesen., oder fehlt da noch ein Teil des Codes ? Hi , ja richtig es fehlt noch teil von Cod, der wert @x ist gesetz allerdings läft es nur eimal durch ;( Habe mir gedacht LOOP zu benutzen aber irgend wie klapt es nicht ;( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lebertran Geschrieben 3. Juni 2003 Teilen Geschrieben 3. Juni 2003 Warum hast du so häufig fetch next drinne? Es reicht doch, einmal, und zwar am anfang (in) deiner Schleife. Gruß Lebertran Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 4. Juni 2003 Teilen Geschrieben 4. Juni 2003 ich würde das fetch next am Ende lassen dann er will ja die Daten die er gerade hat vergleichen und dann zum nächsten. Was ich aber nicht verstehe : du setzt in der Schleife @x = @x/100 und liest dann nen Wert aus dem Cursor in die Variable @x ein ohne sie vorher zu verarbeiten, oder hast du was vom Code aus der Schleife rausgenommen ? Den Schreibfehler in der If Exists Bedingung hast du nur hier beim posten gemacht , oder ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 4. Juni 2003 Autor Teilen Geschrieben 4. Juni 2003 Original geschrieben von Panther Was ich aber nicht verstehe : du setzt in der Schleife @x = @x/100 und liest dann nen Wert aus dem Cursor in die Variable @x ein ohne sie vorher zu verarbeiten, oder hast du was vom Code aus der Schleife rausgenommen ? Den Schreibfehler in der If Exists Bedingung hast du nur hier beim posten gemacht , oder ? Entweder verstehe ich das ganze was Du machst oder es läuft nicht richtig denn wenn ich so versuche zu machen kriege ich nichts gefunden dh. er sollte nicht nur einmal zwei stelle abschneiden sondern solange bis was gefunden oder bis null declare x_cursor cursor for select x from Tabelle1 where ... open x_cursor; fetch x_cursor into @x; print 'fetch_status von x_cursor :' print @@fetch_status –@@fetch_status ist 0 while @@fetch_status = 0 begin print'@x vor' –hier kriege ich den orginal Wert print @x if exists (select was from Tabelle2 where x=@x) – ist hier was falsch ? begin print'x' print @x – hier kommt er nie ;( end fetch next from x_cursor into @x set @x =@x/100 print'x nach' print @x -- hier schneidet er zwei stellen ab aber geht nicht wieder hoch end close x_cursor deallocate x_cursor [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 4. Juni 2003 Teilen Geschrieben 4. Juni 2003 Original geschrieben von 007ski PHP] declare x_cursor cursor for select x from Tabelle1 where ... open x_cursor; fetch x_cursor into @x; print 'fetch_status von x_cursor :' print @@fetch_status –@@fetch_status ist 0 while @@fetch_status = 0 begin print'@x vor' –hier kriege ich den orginal Wert print @x if exists (select was from Tabelle2 where x=@x) – ist hier was falsch ? begin print'x' print @x – hier kommt er nie ;( end fetch next from x_cursor into @x -Warum hier nochmal ein Fetch next ? Mach das doch nach dem Print set @x =@x/100 print'x nach' print @x -- hier schneidet er zwei stellen ab aber geht nicht wieder hoch end close x_cursor deallocate x_cursor Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.