[firebase-br] SP

Magno magnoscosta em bol.com.br
Qui Mar 2 20:36:10 -03 2006


o que preguina nao faz né...
Peguei o livro do cantu e foi dar mais uma relida la pela pagina 199...
acabou saindo isso no papel, acho q melho q o anterior...

Select coalesce(sum(ha),0)
from ct_rati
where cod_rateio = :codrat
and esp = 0
into :SomaG;

Select coalesce(sum(ha),0)
from ct_rati
where cod_rateio = :codrat
into :SomaE;

Update CT_Rati  set
PercG = (ha * 100) / somaG
where Cod_Rateio = :CodRat

Update CT_Rati  set
PercE = (ha * 100) / somaE
where Cod_Rateio = :CodRat

lembrando q Where Cod_Rateio = :CodRat traz varios campos e nao somente 1, e
ha tem valores diferentes....

Acho q isso ta correto né.. ele vai correr todos os registro recalculando o
campo Perc.... ok

Magno


----- Original Message -----
From: "Regis Sebastiani" <regisls em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, March 02, 2006 1:25 PM
Subject: Re: [firebase-br] SP


Lembro que no SQL Server tem o Cursor, mas no Firebird...


Em 26/02/06, Magno <magnoscosta em bol.com.br> escreveu:
>
> Amigos listeiros...
>
> antes eu tinha uma rotina em delphi assim:
>
> Qry.First;
> While not Qry.Eof Do
> Begin
>   Proc_Rat.Params[0].AsFloat := QryHA.AsFloat;
>   Proc_Rat.Params[1].AsInteger := QryCod_Rateio.AsInteger;
>   Proc_Rat.Params[2].AsInteger := QryCod_Interno.AsInteger;
>   Proc_Rat.ExecProc;
>   Qry.next;
> end;
>
> onte eu tinha q passar basicamente o codigo do registro atual, um valor do
> registro atual, e outro codigo no caso Cod_Rateio.
>
> para que eu fizesse rodar a procedure:
> begin
> Select Sum(Ha) from ctrati where Cod_Rateio = :P_CodRat
>   and Especial = 0 into :P_Soma;
> select Sum(Ha) from ctrati Where Cod_Rateio = :P_CodRat
>   into :P_Soma2;
> pPercentagem = (:PNEWHA*100)/:P_Soma;
> pPercentagem2 = (:PNEWHA*100)/:P_Soma2;
>
> /* Atualizar as percentagens */
> Update CTRATI Set Perc_Geral = :pPercentagem Where Cod_Interno =
> :P_CodInterno
>   and Especial = 0;
> Update CTRATI Set Perc_Esp = :pPercentagem2 Where Cod_Interno =
> :P_CodInterno;
> suspend;
> end
>
> Porem to querendo juntar isso ai..
>
> ou seja....
>
> Passar o codigo geral.....
> e a SP selecionar todos os registro com akele codigo, fazer a soma e
> atualizar cada registro, sem q eu precise fazer via delphi passar por cada
> registro..
> Sequencia:
> Somar o campo HA de todos os registro com o codigo informado;
> Pra cada registro pegar o campo HA e gerar a porcentagem representativa
> sobre o total somado (pPercentagem = (HA*100)/:P_Soma;)
> e atualizar o campo de cada registro.
>
> Deu pra entender?
>
> Vlw
> Magno
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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.bavs.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