[firebase-br] RES: Select complicado

Roger roger em dgpram.com.br
Qui Dez 28 15:40:10 -03 2006


Caro Maiki...

Se não existir registro em VALORPRODUTO vc usaria em PRODUTO é isto?

Acabei de fazer algo igual por aqui, mas perguntado se outro campo é nulo e
não o próprio valor_produto. No seu caso usaria o campo
"VP.id_proprietario". Comigo funcionou!

Espero que ajude!

[]'s Roger

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Maiki P.
Enviada em: quarta-feira, 27 de dezembro de 2006 17:13
Para: lista em firebase.com.br
Assunto: [firebase-br] Select complicado

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


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista