SQL - Consulta de empleados según fecha de ingreso y de salida

   
Vista:

Consulta de empleados según fecha de ingreso y de salida

Publicado por Fabián (7 intervenciones) el 08/11/2011 23:31:38
Buenas tengo q realizar la siguiente consulta tengo dos fechas por ejemplo:
'29-04-2011' y '18-06-2011' tengo q traer la cantidad de empleados q laboraron en ese rango aunque sea un solo día me explico:


<29-04-2011>_____________________________________________<18-06-2011>
empleado x ingresa acá y sale acá


El empleado x debe ser tomado en cuenta en la consulta ya que laboró en ese rango,
tengo lo siguiente:


select COUNT (*) from dbo.EMPLEADO where FECHA_INGRESO < '18-06-2011' and FECHA_SALIDA > '29-04-2011' and FECHA_SALIDA <> '1980-01-01'


cuando un colaborador no ha salido tiene por defecto la fecha '1980-01-01' entonces la consulta deja de funcionar debido a que también necesito aquellos colaboradores que no han salido de laborar.

Uso SQLServer 2008 R2, y los campos de fecha son DateTime.


De antemano gracias y saludos
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

Consulta de empleados según fecha de ingreso y de salida

Publicado por leonardo_josue (877 intervenciones) el 09/11/2011 18:59:07
Hola Fabián:
Antes que nada una recomendación: siempre que trabajes con fechas en SQL Server utilizar el formato ANSI (yyyy-mm-dd) en tu consulta estás mezclando formatos (dd-mm-yyyy y yyyy-mm-dd) lo que te puede acarrear problemas.

Ahora bien, no me quedó claro qué es lo que necesitas obtener, sería conveniente que nos pusieras algunos datos de ejemplo... sin embargo, veamos si esto es lo que necesitas.

Creo que esta condición es correcta

1
2
3
select COUNT (*)
from dbo.EMPLEADO
where FECHA_INGRESO < '18-06-2011' and FECHA_SALIDA > '29-04-2011'



Si entendí bien, el problema está con aquellos que empleas que continuan trabajando correcto??? si dices que el valor por dejecto para el campo fecha salida es '1980-01-01' entonces creo que la consulta debería ser así:
1
2
3
4
select COUNT (*)
from dbo.EMPLEADO
where FECHA_INGRESO <= '2011-06-18' and
(FECHA_SALIDA >= '2011-04-29'  or  FECHA_SALIDA = '1980-01-01')


Haz la prueba para ver si funciona y si continuas con problema entonces pon algunos datos de ejemplo de tu tabla y dinos qué es lo que esperas obtener como salida.

OJO con los signos, no sé si debas utilizar > o >=, dependiendo si quieres incluir también la fecha seleccionada.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta de empleados según fecha de ingreso y de salida

Publicado por Fabián (7 intervenciones) el 11/11/2011 15:44:36
Gracias Leo por su ayuda era lo q necesitaba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar