Comp relacionar estas tabelas ???

Delphi

08/11/2004

Bom dia a todos do forum, estou prescisando de uma ajuda de vcs.
tenho tres tabelas onde uma é de PRODUTOS, FORNECEDOR e a outra é FORNECEDORPRODUTO para guardar informações do codigo por fornecedor, é que tenho que cadastrar um produto para n fornecedores. ENtao gostaria de Listar todos os fornecedor de tal produto.

Campos das tabelas :

PRODUTOS : CodProduto, NomeProduto, Qtde
FORNECEDOR : CodFornecedor, NomeFornecedor, Fantasia
FORNECEDORPRODUTO : Codigo, CodProduto, CodFornecedor


Entao em base da tabela FORNECEDORPRODUTO gostaria de listasse da seguinte forma :

codigo NomeProduto NomeFornecedor
0001 luvas de raspa Luvex

e nao

Codigo CodProduto CodFornecedor
0001 00578 00029

a minha SQL montada esta assim :
SelectTbFornecedorProduto.*, TbFornecedor.Fornecedor as TbFornecedor From TbFornecedorProduto
Inner Join TbFornecedor on TbFornecedor.CodFornecedor = TbFornecedorProduto.CodFornecedor
Where CodProduto = :Codigo Order By TbFornecedorProduto.Codigo



LEMBRANDO QUE ESTOU COM O DELPHI 7, PARADOX, QUERY

Muito obrigado a todos.....


Walter Faria

Walter Faria

Curtidas 0

Respostas

Osocram

Osocram

08/11/2004

Acho q seria algo assim

Seu codigo antigo
Select TbFornecedorProduto.*, TbFornecedor.Fornecedor as TbFornecedor From TbFornecedorProduto 
Inner Join TbFornecedor on TbFornecedor.CodFornecedor = TbFornecedorProduto.CodFornecedor 
Where CodProduto = :Codigo Order By TbFornecedorProduto.Codigo 


Seu novoCodigo
Select p.CodProduto,P.NomeProduto,F.NomeFornecedor
  from Produtos p
  inner Join FornecedorProduto FP on FP.CodProduto=P.CodProduto
  inner Join Fornecedor F on F.CodFornecedor=FP.CodFornecedor
Where P.CodProduto = :Codigo 
Order By P.Codigo 



GOSTEI 0
Fer_nanda

Fer_nanda

08/11/2004

Uma alternativa (mais simples mas com performance inferior)

select 
  fpr.codigo, 
  pro.NomeProduto, 
  for.NomeFornecedor, 
from
  fornecedor for,
  produto pro,
  fornecedorproduto fpr
where
  fpr.codigo = :codigo and
  fpr.codigofornecedor = for.codigofornecedor and
  fpr.codigoproduto = pro.codigoproduto


Só uma sugestão: vc não precisa cria um código para a tabela fornecedorproduto, vc poderia colocar apenas codigoproduto e codigo fornecedor. Faria suas buscas mais ou menos assim
select * from fornecedorproduto where codigofornecedor = :cod
ou
select * from fornecedorproduto where codigoproduto = :cod


Até


GOSTEI 0
Walter Faria

Walter Faria

08/11/2004

Valeu galera ...funcionou corretamente


GOSTEI 0
POSTAR