Ver Mensaje Individual
  #8  
Antiguo 30-12-2006
Runner Runner is offline
No confirmado
 
Registrado: jun 2006
Ubicación: Mar del Plata, Argentina
Posts: 3
Reputación: 0
Runner Va por buen camino
Procedimiento

Hola. El codigo es el siguiente.

Código SQL [-]
CREATE PROCEDURE FALTAS(
  LEGAJO INTEGER,
  DESDE DATE,
  HASTA DATE)
RETURNS(
  DIAS VARCHAR(100) CHARACTER SET NONE,
  FALT VARCHAR(100) CHARACTER SET NONE)
AS
DECLARE VARIABLE LEG INTEGER;
DECLARE VARIABLE FEC SMALLINT;
DECLARE VARIABLE CON INTEGER;
BEGIN
  dias=''; falt='';
  CON=extract(day from desde);
  while (con<(extract(day from hasta)+1)) do
  begin
     for select distinct legajo,extract(day from fecha)
         from horario
         where (fecha between :desde and :hasta) and legajo=:legajo
         order by fecha
         into :leg, :fec
     do
     begin
        if (fec=con) then
        begin
           dias = dias || cast(fec as varchar(2)) || '-';
           break;
        end
     end
     if (fec!=con) then falt=falt || cast(con as varchar(2)) || '-';
     con=con+1;
  end
  SUSPEND;
END ^

SET TERM ; ^


Este me da dos cadenas, una con los dias fichados y otro con los dias no fichados.
Los parametros de fecha tienen que ser del mismo mes. Y el codigo esta sin depurar. Puede haber algun error. Ahora me funciona con los datos de prueba.
Escriba antes cualquier critica, por favor.
Gracias.
Responder Con Cita