[firebase-br] AJUDA NA STORED PROCEDURE ABAIXO - ME AJUDEM.

Rubens J Rodrigues rubens.rodrigues em abrevo.com.br
Seg Set 11 13:26:13 -03 2006


Lucio,

Mais uma vez obrigado . . . foi batata . . .
Obrigado a todos. . .

Rubens



Lucio - UniData® escreveu:
> Ai Rubens  ajo que é isso
> 
> 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;
>      V_DIA=EXTRACT(WEEKDAY FROM E_DATAINI);
>      if (:V_FERIADO IS NULL) then begin
>        S_DIASEMANA=V_DIA;
>        S_DATA=E_DATAINI;
>       SUSPEND;
>      END
>      else if (V_DIA <>0 AND V_DIA<>6) THEN
>       BEGIN
>        S_DIASEMANA=V_DIA;
>        S_DATA=E_DATAINI;
>        SUSPEND;
>       END
>       E_DATAINI=E_DATAINI+1;
>    END
> END
> ----- Original Message -----
> From: "Rubens J Rodrigues" <rubens.rodrigues em abrevo.com.br>
> To: <lista em firebase.com.br>
> Sent: Monday, September 11, 2006 9:30 AM
> Subject: [firebase-br] AJUDA NA STORED PROCEDURE ABAIXO - ME AJUDEM.
> 
> 
> 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
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista