Stefhan Postado Maio 21, 2009 Denunciar Share Postado Maio 21, 2009 Essa procedure lhe retorna todos os aniversariantes de um determinado periodo dia/mesSET TERM ^ ;DECLARE VARIABLE DTA_INI TIMESTAMP;DECLARE VARIABLE DTA_FIM TIMESTAMP;BEGIN SELECT cast(:STRDTA_INI||'/'||cast(extract(year from Max(data_nascimento)) AS varchar(10)) as TIMESTAMP) as b FROM FUNCIONARIO into DTA_INI; SELECT cast(:STRDTA_FIM||'/'||cast(extract(year from Max(data_nascimento)) AS varchar(10)) as TIMESTAMP) as b FROM FUNCIONARIO into DTA_FIM; WHILE (DTA_INI <= DTA_FIM) DO BEGIN FOR SELECT NOME,SALARIO, DATA_NASCIMENTO FROM FUNCIONARIO WHERE EXTRACT(DAY FROM DATA_NASCIMENTO) = EXTRACT(DAY FROM :DTA_INI) AND EXTRACT(MONTH FROM DATA_NASCIMENTO) = EXTRACT(MONTH FROM :DTA_INI) ORDER BY NOME, DATA_NASCIMENTO INTO :NOME,:SALARIO, :DTA_NASC DO SUSPEND; DTA_INI = DTA_INI + 1; ENDEND ^SET TERM ; ^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Stefhan
Essa procedure lhe retorna todos os aniversariantes de um determinado periodo dia/mes
SET TERM ^ ;
DECLARE VARIABLE DTA_INI TIMESTAMP;
DECLARE VARIABLE DTA_FIM TIMESTAMP;
BEGIN
SELECT cast(:STRDTA_INI||'/'||cast(extract(year from Max(data_nascimento)) AS varchar(10)) as TIMESTAMP) as b FROM FUNCIONARIO into DTA_INI;
SELECT cast(:STRDTA_FIM||'/'||cast(extract(year from Max(data_nascimento)) AS varchar(10)) as TIMESTAMP) as b FROM FUNCIONARIO into DTA_FIM;
WHILE (DTA_INI <= DTA_FIM) DO
BEGIN
FOR SELECT NOME,SALARIO, DATA_NASCIMENTO FROM FUNCIONARIO WHERE
EXTRACT(DAY FROM DATA_NASCIMENTO) = EXTRACT(DAY FROM :DTA_INI) AND
EXTRACT(MONTH FROM DATA_NASCIMENTO) = EXTRACT(MONTH FROM :DTA_INI)
ORDER BY NOME, DATA_NASCIMENTO INTO :NOME,:SALARIO, :DTA_NASC DO SUSPEND;
DTA_INI = DTA_INI + 1;
END
END
^
SET TERM ; ^
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.