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

Fecha De Incorporacion

Estas en el tema de Fecha De Incorporacion en el foro de PostgreSQL en Foros del Web. hola amigos que tal, necesito ayuda con esto ya que no se como entrarle. tengo que sacar el listado de las personas que deben integrase ...
  #1 (permalink)  
Antiguo 05/04/2007, 07:38
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 0
Fecha De Incorporacion

hola amigos que tal, necesito ayuda con esto ya que no se como entrarle. tengo que sacar el listado de las personas que deben integrase al trabajo siempre y cuando hayan solicitado permisos y la fecha fin de ese permiso sea el dia anterior a de la consulta. ejemplo
JUAN PEREZ FECHA DE PERMISO 10 AL 12 DE ABRIL DE 2007. si el usuario consulta el 13 dicha persona de aparecer en el reporte.

pero ahora si su fecha de incorporacion es un sabado o un domingo o un dia feriado dicha persona debe integrarse al trabajo un lunes. al consultar el usuario el dia lunes deben aparecer dichas personas que cumplan esa condicion,.


graciasss de antemano.
  #2 (permalink)  
Antiguo 05/04/2007, 20:50
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Fecha De Incorporacion

Y cuál es el problema?
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 06/04/2007, 04:40
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Fecha De Incorporacion

que nose como sacar el listado. hice esto pero no me sirve porq me trae todas las fecha menores a la introducida por el usuario en el mes. pero yo quiero que me traiga solo los que deberian integrase al trabajo en esa fecha.

PRIMERA PARTE

SELECT a.cedula,(a.apellido||' '||a.nombre) AS nombre,b.cargo,c.ubicacion,d.ffin,acceso.dia_incor poracion(d.ffin,'2007-04-16'::date)
FROM acceso.empleado a
INNER JOIN acceso.cargo b ON (a.cod_cargo=b.cod_cargo)
INNER JOIN acceso.ubicacion c ON (a.cod_ubic=c.cod_ubic)
INNER JOIN acceso.permisos d ON (a.cedula=d.cedula)
WHERE

('2007-04-16'::date NOT IN (SELECT (extract(year FROM NOW())||'-'||a.mes||'-'||a.dia)::date FROM acceso.dias_festivos a))
AND (EXTRACT(DOW FROM '2007-04-16'::date) NOT IN (0,6) ) AND EXTRACT(MONTH FROM '2007-04-05'::date)=EXTRACT(MONTH FROM d.ffin)
AND d.ffin<='2007-04-16'::date

SEGUNDA PARTE

CREATE OR REPLACE FUNCTION acceso.dia_incorporacion(date,date) RETURNS DATE AS $$
DECLARE
fecha_fin_de_permiso ALIAS FOR $1;
fecha_de_consulta ALIAS FOR $2;
fecha_de_incorporacion DATE;
BEGIN

fecha_de_incorporacion:=( SELECT (fecha_fin_de_permiso + dia ) AS FECHA
FROM GENERATE_SERIES(1, fecha_de_consulta - fecha_fin_de_permiso) AS dia
WHERE
(EXTRACT (DOW FROM (fecha_fin_de_permiso + dia ))) NOT IN (0,6)
AND
(fecha_fin_de_permiso + dia ) NOT IN
(SELECT (extract(year FROM NOW())||'-'||a.mes||'-'||a.dia)::date FROM acceso.dias_festivos a)
ORDER BY FECHA DESC LIMIT 1 );


RETURN fecha_de_incorporacion;
END; $$ LANGUAGE 'plpgsql';
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 09:13.