Sim, exatamente.. Criei um modelinho com as tabelas que voce tem para brincar:
carro ( idcarro, zerokm, custo) venda ( idvenda, idcarro, idvendedor, valorvenda) vendedor ( idvendedor, comissao) o calculo eu faria assim: select sum( case when c.zerokm then (v.valor - *calcula_custo( c.idcarro )* ) * r.comissao else v.valor * r.comisao end ) as valor_comissao from venda v left join carro c on c.idcarro = v.idcarro left join vendedor r on r.idvendedor = v.idvendedor where v.idvenda=p_venda roda somente este SQL na sua base, fazendo a alteracao nos nomes das tabelas e campos, e colocando a sua funcao para custo ali no *calcula_custo( c.idcarro )* Espero que de pra dar umaa ideia 2009/10/2 Bruno Carneiro <guimaraescarne...@gmail.com> > > > Jose adriano Alves wrote: > > > > Estive simulando uma forma de fazer essa procedure e vi que da pra fazer > > em > > um select into todo o processo... > > > > Estive pensando, como tenho dados de tabelas diferentes, para trazer tudo > com apenas um SELECT eu teria que fazer um join para trazer tudo em um > único > SELECT. Que inclusive creio que já foi indicado acima. > > É disso mesmo que você está falando? > > Realmente parece que fazer um SELECT com JOINS é menos custoso do que fazer > aguns SELECTs simples. > > É isso? Mas porquê? > > Eu pensei que fosse porque cada select implica em uma transferencia de > dados, mas como tudo está dentro de um procedure, imagino que não há essa > transferência enquanto a procedure não for finalizada, logo isso não seria > um problema. > > Alguém poderia me esclarecer? > -- > View this message in context: > http://www.nabble.com/Atribuir-valor-escalar-retornado-de-um-SELECT-em-plpgsql-tp25704399p25714313.html > Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com. > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- ---- Att. José Adriano Alves Analista de Sistemas - Móveis Gazin. Cel..: +55 44 8802 3994 Fone: + 55 44 3663 8000 - 2319 Mail: alves.jadri...@gazin.com.br MSN: jose.adri...@gazin.com.br Este e-mail, seu conteúdo e seus anexos estão sujeitos à privilégio de comunicação podendo este documento incluir informação confidencial e de propriedade restrita da GAZIN e apenas pode ser lido por aqueles a qual o mesmo tenha sido endereçado. Se você recebeu essa mensagem de e-mail indevidamente, por favor avise-nos imediatamente. Quaisquer dados, opiniões ou informações expressadas neste e-mail pertencem ao seu remetente e não necessariamente coincidem com aquelas da GAZIN, são de exclusiva responsabilidade do signatário. Este documento não pode ser reproduzido, copiado, distribuído, publicado ou modificado por terceiros, sem a prévia autorização por escrito da GAZIN. Antes de imprimir pense em seu compromisso com o Meio Ambiente
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral