--- saulo Mendes <[EMAIL PROTECTED]> escreveu:
> Senhores,em uma determinada função se eu comparar um
> valor de uma variável, e esta contiver um valor
> nuloa consulta não me traz o resultado. Gostaria de
> saber como equacionar isso de forma
> não-redundante.segue o trecho da consulta: select
> coalesce(sum(ie.qt_entrada*up.vr_fator),0) from
> tb_itentrada_prod ie inner join tb_unid_produto up
> on (up.c_unid_produto = ie.c_unid_produto) and
> (up.d_unidade in ('E','A')) inner join
> tb_entrada_prod e on (ie.c_entrada_prod =
> e.c_entrada_prod) and (e.c_estoque =
> in_c_estoque) and (to_timestamp(e.dt_emissao||'
> '||e.hr_entrada, 'YYYY-MM-DD HH24:MI:SS') >
> coalesce(v_hr_inventario,'1900-02-20 11:18:14-03'))
> where (ie.c_produto = in_c_produto) and (ie.d_lote
> = vt_d_lote) <<<< vt_d_lote é uma variável....se o
> valor dela for nulo(esse campo pode ser nulo) a
> consulta não me traz o valor correto pois o postgres
> não entendeu tipo, ie.d_lote = null. into
> vr_estoque_positivo;a solução parcial que encontrei
> é, antes de consulta (select coalesce...) eu testar
> se a variável é nula, caso seja eu reescrevo a
> função com o final ie.d_lote is null. Eu gostaria de
> eliminar esse redundância.agradeço, desde já.
>
Se você deseja que a comparação de ie.d_lote e
vt_d_lote retorne verdadeiro quando ambos forem NULL
então utilize:
(ie.d_lote IS NOT DISTINCT FROM vt_d_lote)
Veja:
http://www.postgresql.org/docs/8.2/interactive/functions-comparison.html
[]s
Osvaldo
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios