[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