Hi Christian, Versuch mal:
UPDATE Tab2 SET Gesperrt = 'x' WHERE Tab2.Datum IN (SELECT DISTINCT(Tab1.datum) FROM Tab1 where Tab1.Gesperrt LIKE '%' || Tab2.Std || '%') Ciao, Maximilian Tyrtania am 03.05.2009 12:04 Uhr schrieb Christian Hahn unter [email protected]: > Hallo, > > Wie kann ich in einem UPDATE-Befehl auf mehr als 1 Kriterium prüfen, wenn > ich in der WHERE-Klausel eine Unterabfrage benutze? > > Die Abfrage, die ich als Unterabfrage benutzen wird, lautet: > > SELECT * FROM Tab2 INNER JOIN Tab1 > ON Tab2.Datum = Tab1.Datum AND Tab1.Gesperrt LIKE '%' || Tab2.Std || '%' > > Der UPDATE-Befehl müsste etwa lauten: > > UPDATE Tab2 SET Gesperrt = 'x' > WHERE Tab2.Std = > (SELECT * FROM Tab2 INNER JOIN Tab1 > ON Tab2.Datum = Tab1.Datum AND Tab1.Gesperrt LIKE '%' || Tab2.Std || '%') > > hier fehlt in der WHERE-Klausel aber noch die Überprüfung von Datum. > Aber folgendes funktioniert nicht: > > UPDATE Tab2 SET Gesperrt = 'x' > WHERE Tab2.Std = > (SELECT * FROM Tab2 INNER JOIN Tab1 > ON Tab2.Datum = Tab1.Datum AND Tab1.Gesperrt LIKE '%' || Tab2.Std || '%') > AND Tab2.Datum = > (SELECT * FROM Tab2 INNER JOIN Tab1 > ON Tab2.Datum = Tab1.Datum AND Tab1.Gesperrt LIKE '%' || Tab2.Std || '%') > > Wie gehts richtig? > Ich hoffe, das Problem ist so schon genügend durchschaubar, ich kann's aber > auch noch genauer erläutern. > > besten Dank für Rat und Hilfe, Christian Hahn. > >
