Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Unhappy 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?

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
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #2  
Antiguo 22-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 22-08-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
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


__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #4  
Antiguo 22-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 22-08-2003 a las 21:10:50.
Responder Con Cita
  #5  
Antiguo 22-08-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Thumbs up

Muchisimas Gracias
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:53:42.


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