View Full Version : strsql
Guten abend
Komme bei folgendem SQL-Statement nicht weiter:
UPDATE REPXXX/RQF6CPP SET F6H6TX ='Test'
WHERE F6FACD = '29' and F6H6TX = '' and F6KDCD = '123456'
AND F6KDCD IN (SELECT KDKDCD FROM REPXXX/RPAIREP <WBR>
WHERE KDANCD = 'D0' and KDFACD = '01') <WBR>
Row not found for UPDATE.
Ziel: Field F6H6TX mit Test wenn F6KDCD=123456 und KDANCD=D0 + KDFACD=01
Vielen Dank für eure Hilfe.
Grüsse aus der Schweiz.
Hans
Mach mal SELECT anstelle von UPDATE. Vermutlich schränkt die WHERE-Bedingung zu stark ein, so daß keine einzige Zeile ausgewählt wird.
andreaspr@aon.at
20-02-13, 06:46
Wenn du F6KDCD mit zwei unterschiedlichen Werten vergleichst und mit AND statt OR verbindest wird er nichts finden.
UPDATE REPXXX/RQF6CPP SET F6H6TX ='Test'
WHERE F6FACD = '29' and F6H6TX = '' and ( F6KDCD = '123456'
OR F6KDCD IN (SELECT KDKDCD FROM REPXXX/RPAIREP
WHERE KDANCD = 'D0' and KDFACD = '01'))
lg Andreas
Probier mal folgendes:
merge into REPXXX/RQF6CPP USING REPXXX/RPAIREP
ON F6KDCD = KDKDCD
And KDANCD = 'D0'
And KDFACD = '01'
and F6KDCD = '123456'
and F6FACD = '29'
and F6H6TX = ''
WHEN MATCHED THEN UPDATE SET
F6H6TX = 'Test'mit der syntax tu ich mir leichter bei updates 2 Tabellen zu verbinden ohne ettliche subselects.
Du kannst es ja vorher mit einem select überprüfen.
bzw. wenn nicht in beiden Dateien '123456' in der KDCD Spalte drinsteht ist natürlich das OR die richtige Lösung
Hallo
Besten Dank für die Hilfe. Mit folgendem sql-Befehl funktioniert's:
UPDATE REPXXX/RQF6CPP SET F6H6TX ='Test' WHERE F6FACD = '29' and F6H6TX = '' and ( F6KDCD = '123456' OR F6KDCD IN (SELECT KDKDCD FROM REPXXX/RPAIREP WHERE KDANCD = 'D0' and KDFACD = '01' and KDKDCD = '123456'))
Schöne Grüsse
Hans