Fórum Problema Consulta com Outer Join #39795
30/10/2003
0
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
Curtir tópico
+ 0Posts
01/11/2003
Afarias
T+
Gostei + 0
03/11/2003
Marcosrodias
Obrigado
Marcos
Gostei + 0
03/11/2003
Afarias
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+
Gostei + 0
03/11/2003
Marcosrodias
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)