Also irgendwie muss es an den Daten liegen, aber das kann ich von hier aus nicht beurteilen.
Mir fällt aber auch sonst nichts mehr ein, woran es noch liegen könnte.
Aber das könntest Du noch mal testen
was aber eigentlich durch den Inner join abgedeckt war. Aber probieren geht über studieren ;-)
SELECT * FROM TCNSHD a left join TSTATS b on a.SP=b.SP and a.CNSNOSP=b.CNSNOSP where B.STATUSCODE = '116' and A.finalflag= 0 AND NOT EXISTS ( SELECT * FROM TSTATS C WHERE COALESCE(B.FKCNS, 0) = C.FKCNS AND C.STATUSCODE = '117')
Wie bereits vermutet geht es so auch nicht. An den Daten kann es eigentlich nicht liegen, da das SQL interaktiv durchläuft und auch die gewünschten Daten angezeigt werden.
Trotzdem, nochmals vielen Dank für deine Hilfe. Aber tröste dich, bei uns im Hause sind auch alle völlig ratlos.
Erst beim fetch! Ich frage danach den SQLCOD ab.
[IMG]file:///C:/DOKUME%7E1/U0900J%7E1.ACT/LOKALE%7E1/Temp/moz-screenshot-6.jpg[/IMG]
C+ FETCH NEXT FROM STATUS116 INTO :PARM01>>
C/END-EXEC>>
C*>>
C* Dateiverarbeitungsschleife>>
C DOW SQLCOD=*ZEROS>>
C
... dann würde ich sagen, die Ziel-Felder stimmen nicht mit der Auswahl überein!
Entweder hast Du Dich bei den Ausgabe-Feldern vertan (z.B. Komma vergessen) oder Du erhälst NULL-Werte und prüfst diese nicht mit Indikator-Variablen ab.
Übrigens SELECT * ist fast nie die beste Lösung, da viel zu viel unnötiger Schrott übernommen wird.
Und auf SQLCOD = 0 sollte man auch nicht prüfen, da seit Release V5R2 unter bestimmten Situationen Warnungen ausgegeben werden (SQLCOD 1 - 99), die Daten werden jedoch korrekt übernommen. Besser ist auf SQLCOD = 100 OR SQLCOD < 0 abzufragen.
Bookmarks