Oracle - select

 
Vista:
sin imagen de perfil

select

Publicado por la rana rene (3 intervenciones) el 19/03/2010 14:07:04
amigos, soy nuevo con el pl/sql.
tengo las siguientes tablas:

SQL> desc p_suministro;
Name Null? Type
----------------------------------------- -------- -----------------
ID NOT NULL NUMBER(8)
DESCRIPCION NOT NULL VARCHAR2(50)
***********************************************************************
SQL> DESC P_INVENTARIO;
Name Null? Type
----------------------------------------- -------- -----------
ID_SUMINISTRO NUMBER(8)
ID_LOCALIDAD NUMBER(4)
**********************************************************************
SQL> DESC P_PROYECTO_SUMINISTROS;
Name Null? Type
----------------------------------------- -------- --------------
ID_PROYECTO NOT NULL NUMBER(8)
ID_SUMINISTRO NOT NULL NUMBER(8)

Deseo hacer lo que sigue: Borrar de la tabla de suministros todos aquellos que no tengan existencia (inventario) y que no han sido nunca incluidos en un proyecto.

MI QUERY ES EL QUE SIGUE:

DELETE FROM P_SUMINISTRO WHERE ID<>
SELECT ID
FROM P_SUMINISTRO
WHERE ID IN (SELECT ID_SUMINISTRO FROM P_INVENTARIO WHERE ID_SUMINISTRO IN
(SELECT ID_SUMINISTRO FROM P_PROYECTO_SUMINISTROS));

Esto me devuelve las filas que NO debo eliminar, como hago para que haga lo contrario a esto.
No se si me expliqué.
Desde ya les agradezco. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:select

Publicado por PEDRO (38 intervenciones) el 26/03/2010 13:11:12
utiliza las negaciones, en vez de IN , NOT IN, luego tambien puedes utilizar los conectores EXISTS o NOT EXISTS, busca informacion en google, te ayudara
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar