[firebase-br] Select complicado

Maiki P. maiki em codificando.com.br
Qua Dez 27 17:12:44 -03 2006


Caros Colegas,

estou com um problema na seguinte query:

select CASE WHEN VP.valor_produto is null THEN P.valor_produto ELSE 
VP.valor_produto END AS VALOR1
from ATIVIDADE A INNER JOIN FAZENDA F ON (F.id_fazenda = A.id_fazenda)
INNER JOIN PROPRIETARIO PR ON (PR.id_proprietario = F.id_proprietario)
LEFT JOIN VALORPRODUTO VP ON (PR.id_proprietario = VP.id_proprietario)
RIGHT JOIN PRODUTO P ON (P.id_produto = VP.id_produto)
where A.id_atividade=745
and P.nome_produto='CALCÁRIO DOLOMÍTICO'

onde o objetivo da mesma é verificar se o proprietário referenciado 
(pela atividade agrícola e conseqüentemente pela fazenda) possui
um valor de produto personalizado a este, se sim, utiliza esse valor
(campo VP.valor_produto da tab. VALORPRODUTO), caso contrário,
utiliza o valor do campo P.valor_produto da tab. PRODUTO.

o select acima funciona quando a um valor na tab. VALORPRODUTO 
relacionado ao produto q está na condição (where), ou seja,
expressa o valor do campo VP.valor_produto, mas se não há
um valor cadastrado ele resulta em null (não traz nenhum registro)
e não empressa o valor do campo P.valor_produto como deveria.

Obs.: Firebird 2.0





Mais detalhes sobre a lista de discussão lista