SQL - Intersect en Sybase

 
Vista:

Intersect en Sybase

Publicado por Sebastián (1 intervención) el 02/08/2007 05:47:44
Bueno recurro a uds. para ver si me pueden dar una mano con algo que me esta enloqueciendo.

Tengo el siguiente caso:
iface = es una tabla de interfaces de equipos de una red.
nid,ifnr = número de nodo, número de interfaz, conforman la PK de la tabla iface

circuit=es una tabla de circuitos
cid= circuit ID, es la PK correspondiente.
enid1,eifnr1= es Fk de la tabla iface, corresponde al extremo 1 de un circ. dado
enid2,eifnr2= es Fk de la tabla iface, corresponde al extremo 2 de un circ. dado

Lo que estoy buscando es todas aquellas interfaces (nid,unnr) que no tengan circuito asociado alguno.

Una forma sería con un intersect de dos select, el primero que liste todas aquellas interfaces que no se correspondan al extremo 1 de un circuito, y otro select haciendo lo propio con las interfaces para el extremo 2.

El problema es que en Sybase no tengo la facilidad del operador INTERSECT.

Logre buscar si todos aquellos nodos que no tengan circuitos usando exists:

select i.nid from iface i
where not exists
(select * from circuit c
where i.nid=c.enid1 or i.nid=c.enid2
)

Pero cuando quiero agregar en la clausla la FK completa para obtener las interfaces me empieza el resultado a dar cualquier cosa:

select i.nid,i.ifnr from iface i
where not exists
(select * from circuit c
where (i.nid=c.enid1 and i.ifnr=c.enid1) or (i.nid=c.enid2 and i.ifnr=c.endi2)
)

Desde ya les agradecere su respuesta, ya sea en como implementar el Intersect en Sybase, o bien en que estoy haciendo mal con el EXISTS.
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