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 09-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Campos Fechas, ayuda!!!

Tengo una Gran duda y no se como hacerlo, guardo en una tabla por personas ausentismos con una fecha desde y hasta (eje. Persona xx del 10/7/2008 al 02/08/2008), me estan pidiendo hacer un listado entre dos fechas, o sea saber que personas faltaron entre el 18/07 al 20/07. O sea que me tendria que traer en el informe a esta persona xx pero solo dieciendo tres dias, no tomando todo el periodo de su ausencia. Se puede hacer directamente todo en un select o tengo que progranar todo dentro de un do while?-

Gracias
Responder Con Cita
  #2  
Antiguo 09-08-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Esta como poco clara la descripcion del problema

de todos modos puedes restar las fechas
ejm
Código SQL [-]
select empleado,fecha_final-fecha_incial as dias from tabla


si por cada dia de ausencia creas un registro podrias aserlo de esta forma

Código SQL [-]
select empleado, count(distinct fecha) from tabla group by empleado

Recuerda entre mas claro el problema mas rapido te pueden dar la solucion
Responder Con Cita
  #3  
Antiguo 09-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Hola,

En el blog de nuestro amigo [enecumene] esta este articulo para trabajar con fechas desde SQL. La otra opcion seria que restaras las fechas
Código Delphi [-]
fecha := fecha1 - fecha2
creando una variable TDatetime.
__________________
Web
Responder Con Cita
  #4  
Antiguo 09-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
problemas fechas

Primero Gracias por todo. Para ser mas claro, tengo una tabla con registros donde guardo, documento, fecha_desde, fecha_hasta, o sea '12344', 02/07/2008, 30/08/2008.
Guardo por periodo de ausentismo no dia por dia.
El tema que me piden hacer listados con fechas desde - hasta.
Ejemplo. Un listado de personas que faltaron entre el 05/07/2008 al 07/072008, o sea que tendria que aparecer el ejemplo enunciado anteriormente de la tabla como que falto esos tres dias la persona.
No se como encararlo en el where y si pudiera hacer los calculos dentro del select, para que no me salga en el listado dia desde 02/07, sino 05/07, porque tendria que evaluar que en el listado a pedir me pueden solicitar cualquier periodo y fijarme si la persona falto dentro de esos rangos y que dias entran en ese rango.

Gracias por sus respuestas
Responder Con Cita
  #5  
Antiguo 09-08-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que esto resuelve tu cuestión.
Es la unión de varias consultas parciales.
En el caso de no estar de baja todo el período pedido, se devuelve la fecha_desde o fecha_hasta en que se inició o finalizó la baja.
En el caso de que la fecha de baja/alta esté fuera del período, se devuelve la fecha pedida como parámetro.
Código SQL [-]
/* periodo pedido: desde 10/08/2008 hasta 15/08/2008 */
/* Los que faltaron todo el período */
/* (ejemplo: 01/08/2008 - 31/08/2008) */
select persona,:desde,:hasta from tabla_ausentismo 
where
(fecha_desde <= :desde) and
(fecha_hasta >= :hasta)
union
/* Los que faltaron una vez empezado el período */
/* (ejemplo: 12/08/2008 - 31/08/2008) */
select persona,fecha_desde,:hasta from tabla_ausentismo 
where
(fecha_desde >= :desde) and
(fecha_desde <= :hasta) and
(fecha_hasta >= :hasta)
union
/* Los que faltaron y volvieron antes de terminar el período */
/* (ejemplo: 01/08/2008 - 12/08/2008) */
select persona,:desde,fecha_hasta from tabla_ausentismo 
where
(fecha_desde <= :desde) and
(fecha_hasta >= :desde) and
(fecha_hasta <= :hasta)
union
/* Los que faltaron solo unos dias dentro el período */
/* (ejemplo: 13/08/2008 - 14/08/2008) */
select persona,fecha_desde,fecha_hasta from tabla_ausentismo 
where
(fecha_desde >= :desde) and
(fecha_desde <= :hasta) and
(fecha_hasta >= :desde) and
(fecha_hasta <= :hasta)

Última edición por duilioisola fecha: 09-08-2008 a las 22:04:40.
Responder Con Cita
  #6  
Antiguo 09-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fechas problemas!!!

Mil gracias, el unico tema que me tendria que devolver la fecha en que realmente falto, los where que me hiciste estan excelente, creo que despues tendria que calcular en el select que me traiga el dia dentro de ese peripdo, o sea si mi registro dice del 01/07 al 25/07 y me piden un listado del 19 al 20 de julio que me traiga nada mas en el listado esos dos dias.
Responder Con Cita
  #7  
Antiguo 11-08-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Estos campos subrayados son los parámetros que le pasas, por lo que te devolverá exactamente lo que pides.
Código SQL [-]
select persona,:desde,:hasta from tabla_ausentismo 
where
...
union
/* Los que faltaron una vez empezado el período */
select persona,fecha_desde,:hasta from tabla_ausentismo 
...
union
/* Los que faltaron y volvieron antes de terminar el período */
select persona,:desde,fecha_hasta from tabla_ausentismo 
...
union
/* Los que faltaron solo unos dias dentro el período */
select persona,fecha_desde,fecha_hasta from tabla_ausentismo 
...
Responder Con Cita
  #8  
Antiguo 13-08-2008
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Fechas

Gracias a todos, por la ayuda de ustedes tema solucionado.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Una Duda sobre campos de fechas ale_metall Varios 8 21-10-2007 19:38:45
Comparar 4 campos fechas y hacer un update con el más nuevo pablo_911 SQL 0 11-07-2006 23:39:27
Ayuda Con fechas torete_86 Varios 9 04-12-2005 17:44:29
Ayuda con las fechas tramjauer Varios 3 16-06-2005 15:07:06
Ayuda con fechas robero espinoza SQL 1 14-04-2004 17:28:07


La franja horaria es GMT +2. Ahora son las 07:44:02.


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