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.
> 
> 



Antwort per Email an