REVELAR

Fórum Se há um valor na tab. detalhe respeita esse, caso contrário #57093

19/10/2006

0

Caros colegas,

o título já representa bem minha dúvida, mas vou detalha-la melhor. Tenho o seguinte SQL:

select P.nome_produto,CASE WHEN VP.valor_produto is null THEN P.valor_produto ELSE VP.valor_produto END AS VALOR_PRODUTO
from ATIVIDADE A INNER JOIN PRODUTO P ON(A.id_produto=P.id_produto)
LEFT JOIN VALORPRODUTO VP ON(P.id_produto=VP.id_produto)
FULL OUTER JOIN FAZENDA F ON(VP.id_proprietario=F.id_proprietario)
where A.id_atividade=1225
and F.id_fazenda=A.id_fazenda
order by P.nome_produto

as Tabelas em questão são:

ATIVIDADE => Atividade Agrícola
PRODUTO => produtos utilizados nas Ativ. Agrícolas
VALORPRODUTO => valores atribuídos x proprietário à tab. PRODUTO na relação Mestre/Detalhe
FAZENDA => Propriedade Rural

o impasse é q esse comando não está pegando os produtos q não possuem ´detalhes´ na tab. VALORPRODUTO....através de testes observei q retirando esse join:

FULL OUTER JOIN FAZENDA F ON(VP.id_proprietario=F.id_proprietario)

funciona blz, mas acontece q eu preciso saber o proprietario p/ identificar o valor do produto dado a este.

A idéia é construir um comando q faça o seguinte: se naquele produto utilizado naquela atividade agrícola daquela propriedade tiver um valor de produto associado na tabela detalhe pegue este valor, caso contrário pegue o valor da tab. PRODUTO (mestre), gostaria da opinião se é possível realizar esse comando numa query simples, ou precisaria de uma view ou stored procedure e como seria esse comando ??

Att, Maiki Perin


Maikiperin

Maikiperin

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar