[firebase-br] AJUDA NA STORED PROCEDURE ABAIXO - ME AJUDEM.
Rubens J Rodrigues
rubens.rodrigues em abrevo.com.br
Seg Set 11 09:30:25 -03 2006
Pessoal,
Tenho cenário abaixo . . . onde preciso extrair todos os dias realmente
úteis de um determinado período, neste caso passado via parametros.
Porém estou com dificuldades para montar a procedure, ora entro no loop
e fico travo o select, ora o resultado duplica alguns dias.
Então, baseado no codigo abaixo e com a experiência de muitos de vocês,
gostaria de uma ajuda.
A idéia é : Montar uma rotina em sql, onde eu traga no resultado os dias
realmentes úteis dentro de um período especificado via parametros.
Conto com a ajuda de vocês,
Att.
Rubens
TABELA DE FERIADOS.
CODFERIADO INT,
DATAFERIADO DATE
CREATE PROCEDURE TESTE(
E_DATAINI DATE,
E_DATAFIM DATE)
RETURNS(
S_DIASEMANA INTEGER,
S_DATA DATE)
AS
DECLARE VARIABLE V_DIA INTEGER;
DECLARE VARIABLE V_FERIADO INTEGER;
BEGIN
WHILE (E_DATAFIM > E_DATAINI) DO
BEGIN
SELECT COUNT(1) FROM FERIADOS WHERE DATA=:E_DATAINI INTO :V_FERIADO;
IF (:V_FERIADO > 0) THEN
BEGIN
E_DATAINI = E_DATAINI +1;
SUSPEND;
END
V_DIA=EXTRACT(WEEKDAY FROM E_DATAINI);
IF (V_DIA <>0 AND V_DIA<>6) THEN
BEGIN
S_DIASEMANA=V_DIA;
S_DATA=E_DATAINI;
E_DATAINI=E_DATAINI+1;
SUSPEND;
END
END
END
Mais detalhes sobre a lista de discussão lista