Bruno Carneiro wrote:
> 
> Gente, tive um problema.
> 
> Antes de fazer qualquer melhoria, eu testei minha função e ela não está
> retornando o valor exato.
> 
> Vejam o teste que eu fiz. Do lado esquerdo tem a função, como ela está
> agora. E do lado direito os testes feitos a mão no console.
> 
> http://img203.imageshack.us/img203/1359/pgerro.jpg
> 
> Repare que no final retornou 47 ao invés de 28.20
> 
> 

Alterei minha função usando o select que o José Adriano passou e agora a
função retorna o valor esperado.

DECLARE 
   v_idcarro integer;
   v_zerokm boolean;
   v_vvenda numeric(8,2);
   v_idvend integer;
   v_c_vend numeric(8,2);
   v_retorno numeric(8,2);

BEGIN
   select
  sum( case when c.zero_km then (v.valor - custo_total( c.idcarro )  ) *
r.comissao
          else v.valor * r.comissao
  end )    as valor_comissao
from venda v
left join carro c on c.idcarro = v.carro
left join vendedor r on r.idvendedor = v.vendedor
where v.idvenda=15 INTO v_retorno;

   RETURN v_retorno;

END;


-- 
View this message in context: 
http://www.nabble.com/Atribuir-valor-escalar-retornado-de-um-SELECT-em-plpgsql-tp25704399p25715157.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a