[firebase-br] Procedure

NextCorp Informática nextcorp em terra.com.br
Sex Fev 5 09:59:06 -03 2010


Oi José

Olha a linha, o que vc colocou:

for select codigocliente from  contasreceber
  into :id


ao invés de ser a tb contasreceber, tem que ser tb cliente, pois vc quer de 
todos os seus clientes, não é?

Olha o outro e-mail que te mandei com a estrutura prontinha, tem que 
funcionar, apesar que não testei.

Washington




--------------------------------------------------
From: <joseluiz em medeirosinfor.com>
Sent: Friday, February 05, 2010 9:29 AM
To: <lista em firebase.com.br>
Subject: [firebase-br] Procedure

> Colega..
>
>
> Fiz dessa forma e deu o mesmo erro:
>
>
>
> SET TERM ^ ;
>
> CREATE PROCEDURE SP_TESTE (
>    id integer)
> returns (
>    situacao numeric(12,2))
> as
> declare variable debito numeric(12,2);
> begin
>  for select codigocliente from  contasreceber
>  into :id
>  do
>  begin
>   select sum(valortotal)Debito from contasreceber d
>   where
>     d.codigocliente = :id
>     into :debito;
>    end
>  situacao = :debito;
>  suspend;
> end^
>
> SET TERM ; ^
>
> executo assim e deu esse erro:
> multiple rows in singleton select
>
> se eu colocar somente 1 cliente funciona blz!!
>
> uso firebird 2.1
>
>
> Grato:
> Jose Luiz
>
> Alguem saberia cpmo faço
> ----- Original Message -----
> From: NextCorp Informática
> To:  "FireBase" <lista em firebase.com.br>
> Sent:  Fri, 5 Feb 2010 01:59:41 -0200
> Subject: Re: [firebase-br] (sem assunto)
>
> Caro colega
>
> Tenta assim
>
> for
>    select cli_codigo
> from clientes
> into :wcodcli
> do
>   begin
>            select sum(d.valor_parcela)
>            from contasreceber d
>            where d.id_cliente = :wcodcli
>            into :debito
>   end;
>
> assim ele le a sua tabela de clientes e dentro do begin end vc executa os
> selects
>
> Atenciosamente
>
> Washington André Muller da silva
>
> #######################
> NextCorp Informática Ltda
> www.nextcorp.com.br
> nextcorp em nextcorp.com.br
> nextcorp em terra.com.br
> 0xx-(51)-3037-6605
> #######################
> --------------------------------------------------
> From: "Jose Luiz de Medeiros" <joseluiz em medeirosinfor.com>
> Sent: Thursday, February 04, 2010 11:45 PM
> To: "lista em firebase. com. br" <lista em firebase.com.br>
> Subject: [firebase-br] (sem assunto)
>
>> Colegas.
>>
>>
>>
>> Tenho essa procedure:
>>
>>
>>
>> SET TERM ^ ;
>>
>>
>>
>> CREATE PROCEDURE SP_CALCULACD (
>>
>>    id integer)
>>
>> returns (
>>
>>    apagar numeric(12,2),
>>
>>    areceber numeric(12,2),
>>
>>    situacao numeric(12,2))
>>
>> as
>>
>> declare variable debito numeric(12,2);
>>
>> declare variable credito numeric(12,2);
>>
>> begin
>>
>>
>>
>> select sum(d.valor_parcela)
>>
>>   from contasreceber d
>>
>>   where d.id_cliente = :id
>>
>>   into :debito;
>>
>>
>>
>> select sum(c.valor)
>>
>>   from caixa c
>>
>>   where c.id_cliente = :id
>>
>>   into :credito;
>>
>> apagar = :debito;
>>
>> areceber = :credito;
>>
>> situacao = :debito - :credito;
>>
>> suspend;
>>
>> end^
>>
>>
>>
>> SET TERM ; ^
>>
>>
>>
>> Preciso saber a situação de todos os clientes de uma vez, nessa procedure
>> coloco o id de um cliente ela me retorna
>>
>> O debito o credito e a situação daquele cliente.
>>
>> Sera que teria jeito de saber a situação de todos de uma vez?
>>
>>
>>
>> Tentei assim mas não deu:
>>
>>
>>
>> Execute procedure SP_calculacd(select id from clientes);
>>
>>
>>
>> Como sou meio cru em firebird, alguém poderia me dar uma força?
>>
>>
>>
>>
>>
>> Grato:
>>
>> Jose Luiz
>>
>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> E-mail verificado pelo Terra Anti-Spam.
>> Para classificar esta mensagem como spam ou não spam, visite
>> http://ecp.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NzQ4MTEjcGVybSF0ZXJyYSYxLDEyNjUzMzUyMjYuOTY
> 5NTk1LjQ1MjAuY2FicmV0b24udGVycmEuY29tLDQzMzE=TerraMail
>> Verifique periodicamente a pasta Spam para garantir que apenas mensagens
>> indesejadas sejam classificadas como Spam.
>>
>>
>
>
>
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com
>> Version: 8.5.435 / Virus Database: 271.1.1/2666 - Release Date: 02/03/10
>> 19:35:00
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.p
> hp?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> E-mail verificado pelo Terra Anti-Spam.
> Para classificar esta mensagem como spam ou não spam, visite
> http://ecp.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NzQ4MTEjcGVybSF0ZXJyYSYxLDEyNjUzNjk1ODkuMTY3NDQyLjg4NzQudHJpYnVuZS50ZXJyYS5jb20sNzI5NA==TerraMail
> Verifique periodicamente a pasta Spam para garantir que apenas mensagens
> indesejadas sejam classificadas como Spam.
>



> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa



>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.5.435 / Virus Database: 271.1.1/2669 - Release Date: 02/05/10 
> 07:35:00
> 




Mais detalhes sobre a lista de discussão lista