duda con dos select

abmptc
25 de Septiembre del 2009
Hola

Tengo una duda en este problema:

Se van anotando las actividades laborales(que ejercen en un determinado puesto de trabajo).

Actividad:
“NEFE” cod. Efectivo
“NRS” numero de relacion
“NAC” numero de actividad
NPT codigo Puesto
FTPO fecha toma posesión
FCES Fecha Cese

Puesto:
“NPT” codigo Puesto
DES Descripcion
FINI Fecha Inicio
FFIN Fecha fin

(los campos que forman la clave principal van entre comillas)

a) select count(1) from actividad where fces is null and not exist (select 1 from puesto where ffin is null and npt= actividad.npt)

b) select count(1) from actividad a, puesto p where a.fces is null and p.ffin is null anda a.npt=p.npt


Dan como buena la a), pero no consigo ver cual es la diferencia entre las dos opciones. ¿Porque no sería valida la b).

Saludos.

mvallejos
25 de Septiembre del 2009
Habría que ver bien el enunciado del problema, pero la opcion a busca datos en una tabla que no existan en la otra.
La opcion b es equivalente a un Inner Join

Saludos

abmptc
25 de Septiembre del 2009
Hola,

Muchas gracias por tu respuesta, no se como no me di cuenta de que ponía NOT EXIST, en vez de EXIST.

Un saludo.