Usuwanie wiersza

0

Witam,
Chce napisać coś takiego, że usuwana wiersze z tabeli Order Details jeśli znajduje się on w niżej napisanym SELECT' cie.

delete from [Order Details] 
where OrderID in(select * from [Order Details] as O join Orders on O.OrderID = Orders.OrderID
	where Orders.OrderDate = cast('1998/04/14 00:00:00' as datetime) or 
	Orders.OrderDate = cast('1999/07/17 00:00:00' as datetime))

I wszystko byłoby fajnie, ale nie ma żadnego pola w Order Details, które występuje tylko raz. Próbowałem napisać warunek, że OrderID in(select..) and ProductID in(select) i tak wszystkie pola, ale nie przeszło.

0

A masz jakiś PK lub UNIQUE index?

1

O ile ten select nie zwroci Ci jednej kolumny to ten zapis jest jest niepoprawny.

 SELECT * FROM [ORDER Details] AS O JOIN Orders ON O.OrderID = Orders.OrderID
    WHERE Orders.OrderDate = CAST('1998/04/14 00:00:00' AS datetime) OR 
    Orders.OrderDate = CAST('1999/07/17 00:00:00' AS datetime)

zamiast * napisz

DISTINCT O.ORDERID

1 użytkowników online, w tym zalogowanych: 0, gości: 1