[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