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


0