Fórum Problema Consulta com Outer Join #39795

30/10/2003

0

Prezado colaboradores

Estou tendo dificuldade no select abaixo, Tenho tres tabelas : produto, estoque e filial.

Quero que liste todos os produtos que estao no estoque para cada tabela indepentente de estar ou não no estoque.

O problema é que a filial que não contem estoque sai com o estoque da outra.

Grato pela colaboração

Marcos


Select Estoque.Codigo_Filial, Grade, Produto.Codigo_Produto, Descricao,
Codigo_Barra, Codigo_Produto_Cliente, Preco1,
Preco2, Preco3, Preco_Promocao, Data_Promocao,
(Estoque.Qtd_Loja + Estoque.Qtd_Deposito + Estoque.Qtd_Geral) As Saldo,
Filial.Nome
from Produto Full Outer Join Estoque
On Produto.Codigo_Produto = Estoque.Codigo_Produto, Filial
where Ativo = ´N´
Order by descricao


Marcosrodias

Marcosrodias

Responder

Posts

01/11/2003

Afarias

vc só está definindo a relação (JOIN) para as tabelas Produto e Estoque -- vc deve tb definir ´onde´ Filial entra nessa história.


T+


Responder

Gostei + 0

03/11/2003

Marcosrodias

O problema é esse pode dar uma dica ?

Obrigado

Marcos


Responder

Gostei + 0

03/11/2003

Afarias

|O problema é esse pode dar uma dica ?

Não sem conhecer suas tabelas (ou pelo menos os campos principais como chaves primárias e estrangeiras).

o lance é q vc tem q ter a chave primária de FILIAL em alguma das outras 2 tabelas (provavelmente ESTOQUE) como chave estrangeira, dai vc faz o JOIN.

ex:

select * from filial
full join estoque on (estoque.filial = filial.codigo)
full join produto on (produto.codigo = estoque.produto)


Mas uma coisa, só use FULL [OUTTER] JOIN se vc realmente precisa -- pode custar caro a performance.


T+


Responder

Gostei + 0

03/11/2003

Marcosrodias

Ola aFarias

Deu certo sua instrução, mas se não for abusar muito esqueci de dizer que no resultado da consulta quero listar todos os produtos da tabela produto mesmo que não tenha na estoque.

O Select ficou com esta abaixo.

Mais uma vez obrigado pela ajuda.

Um Abraco

Marcos Roberto

Select Estoque.Codigo_Filial, Grade, Produto.Codigo_Produto, Descricao,
Codigo_Barra, Codigo_Produto_Cliente, Preco1,
Preco2, Preco3, Preco_Promocao, Data_Promocao,
(Estoque.Qtd_Loja + Estoque.Qtd_Deposito + Estoque.Qtd_Geral) As Saldo, Filial.Nome
from Filial
Left Join Estoque On (Estoque.Codigo_Filial = Filial.Codigo_Filial)
Left Join Produto On (Produto.Codigo_Produto = Estoque.Codigo_Produto)
where Ativo = ´N´
Order by descricao


Responder

Gostei + 0

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

Aceitar