Se há um valor na tab. detalhe respeita esse, caso contrário
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
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
Curtidas 0