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