Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   una Query que no quiere salir (https://www.clubdelphi.com/foros/showthread.php?t=3125)

Viet 22-08-2003 20:18:47

una Query que no quiere salir
 
Buenas a todos:

Trabajo con SQL Server 7.(contra mi voluntad je!)

Estoy tratando de generar un listado de todas los empleados que no generaron registros de actividad en un dia en particular.

Las tablas que tengo son Empleados(con id_empleado, ........) Acciones( con id_empleado, Fecha_hora, ....etc)

Por ejemplo tendria:

Emplados
-------------
1 pepe
2 manolo
3 cris

Acciones
------------
1 01/05/03 ......
2 01/05/03 ......
1 02/05/03.......
2 03/05/03 .......

Mi listado tendria que ser :

01/05/03 cris
02/05/03 manolo
02/05/03 cris
03/05/03 pepe
03/05/03 cris

Lo que estoy tratando de hacer es :

Select fecha, nombre
From
empleados left outer join acciones on (empleados.id_empleado=acciones.id_empleado)
Where
(acciones.id_emplado is NULL)

pero no me funciona..

Alguna sugerencia? :(:confused:

otra cosita : seria muy util para mi poder filtra por fechas con algo como (fecha between '01/05/03' and '03/05/03') pero me imagino que quedaran estos campos en NULL despues del join, no?


Gracias de antemano por su tiempo :p

delphi.com.ar 22-08-2003 20:36:18

Todo esto es una suposición:
Si tus empleados generaron registros de actividad en un día en particular, entonces no van a tener un registro en esa tabla para poder compararlo con null, por lo tanto tu consulta no va a funcionar porque no se cumple la relación "empleados.id_empleado=acciones.id_empleado", lo que tienes que hacer es usar un NOT EXISTS

Código:

Select fecha, nombre
From empleados
where not exists (select 1 from acciones
                            where empleados.id_empleado=acciones.id_empleado)

Saludos!

Viet 22-08-2003 20:52:15

Muchas Gracias por tu idea pero..... El campo fecha justamente esta en la tabla Acciones, y con la consulta que me pasas solo consigo un registro por empleado que nunca haya hecho una actividad osea que no exista en la tabla acciones.

Lo que yo necesitaria es un registro por dia por empleado que no figure en actividades ej:


01/05/03 cris
02/05/03 manolo
02/05/03 cris
03/05/03 pepe
03/05/03 cris


:confused:

delphi.com.ar 22-08-2003 21:07:55

uPS.. Tienes razón.. me he olvidado lo mas importante...
Código:

Select fecha, nombre
From empleados
where not exists (select 1 from acciones
                            where empleados.id_empleado=acciones.id_empleado
and acciones.fecha = '01/01/2000')

Igualmente para lo que tu quieres, es conveniente tener una tabla con las fechas de en las que se ha trabajador, y hacer la pregunta al revés.... quiero Todos los empleados que no esten en la tabla acciones para las fecha

Viet 22-08-2003 21:22:51

Muchisimas Gracias ;)


La franja horaria es GMT +2. Ahora son las 06:07:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi