Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Duda con dos Select

Estas en el tema de Duda con dos Select en el foro de Bases de Datos General en Foros del Web. 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” ...
  #1 (permalink)  
Antiguo 24/09/2009, 12:41
Avatar de abmptc  
Fecha de Ingreso: septiembre-2009
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Duda con dos Select

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.
  #2 (permalink)  
Antiguo 25/09/2009, 01:20
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Duda con dos Select

Hola abmptc.

Segun veo, basicamente son difernetes porqeu hacen cosas diferentes.
En la select a) lo que haces es sacar todas las actividades que no hayan cesado y que NO tengan ningun registro con puesto con fecha fin
Mientras que en la b) estas sacando las actividades sin cese y qeu SI tengan puesto con fecha fin.

Fijate qeu en la primera select estas usando un NOT EXISTS, mientras que en la segunda la condicion la estas uniendo al resto, por lo qeu estas sacando dos cosas difernetes.
Además, imagina que existe una actividad con dos puestos. Uno con fecha y el otro sin fecha. En la select a) no apareceria ningun dato acerca de esta actividad (puesto que existe un registro qeu la fecha es nula), mientras que en la b) saldria uno, puesto qeu hay un registro cumple tus coondiciones

Espero que te aclare.

te vale??

saludos
  #3 (permalink)  
Antiguo 25/09/2009, 05:36
Avatar de abmptc  
Fecha de Ingreso: septiembre-2009
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Duda con dos Select

Hola javi_cassi,

Te he entendido perfectamente, muchísimas gracias . Una última pregunta, si en la a) en vez de NOT EXIST, hubieran quitado el NOT, ahí si nos darían el mismo resultado ambas select ¿No?

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:45.