Opa...
Cuidado com esse tipo de situacao.
Observa esse código...
Evita variaveis e permite ter somente uma saida a funcao...
Tenta fazer mais claro e coeso pra vc nao ter problemas no futuro...
DECLARE
v_idcarro integer;
v_zerokm boolean;
v_vvenda numeric(8,2);
v_retorno numeric(8,2);
BEGIN
*
/* isso ja evita fazer 3 selects */
select into* v_idcarrro
, v_vvenda
, v_idvend *
from *( *select *v.carro, v.valor, v.vendedor *from *public.venda v *where
*v.idvenda = p_idvenda ); /* seta os valor na variavel a partir do
select */
/* como voce vai usar somente essa vez a verificacao de carro zero, pode
inserir diretamente a verificacao */
IF ( *SELECT *c.zero_km *FROM *public.carro c *WHERE *c.idcarro =
v_idcarro *LIMIT *1) = TRUE THEN /* quando nao usar agregacao ( sum,
count, avg, etc) usa o limit 1 por exemplo, ou aplique a agragacao
necessaria */
/* faz o calculo com o coalesce() para evitar um NULL estragando seus
calculos */
v_retorno := (v_vvenda - custo_total(v_idcarro) ) * *COALESCE*(
( *SELECT
*v.comissao *FROM *public.vendedor v *WHERE *v.idvendedor = v_idvend *LIMIT
*1), 0 );
ELSE
v_retorno := (v_vvenda * v_c_vend);
END IF;
RETURN( v_retorno ) ;
END;
2009/10/1 Bruno Carneiro <[email protected]>
>
>
>
> Osvaldo Kussama wrote:
> >
> >
> > Tente:
> > SELECT carro FROM venda WHERE idvenda = p_idvenda INTO v_idcarro;
> > o mesmo para os demais campos/SELECT.
> >
> >
>
>
> Era exatamente isso! Obrigado. INTO no final...
>
> Eu também tinha tentado com parenteses e não deu.
>
> Obrigado a todos!
> --
> View this message in context:
> http://www.nabble.com/Atribuir-valor-escalar-retornado-de-um-SELECT-em-plpgsql-tp25704399p25704788.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
>
--
----
Att.
José Adriano Alves
Analista de Sistemas - Móveis Gazin.
Cel..: +55 44 8802 3994
Fone: + 55 44 3663 8000 - 2319
Mail: [email protected]
MSN: [email protected]
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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral