Consulta Sql

7 respostas
douglasmorais

Olá amigos…

Só conheço o basico de Sql, especificamente MySql.

Gostaria de ajuda de vocês para superar esse desafio ( pra mim é um desafio ).

Eu tenho tres tabelas, Fornecedor, Produto, e Produto_Fornecedor ( a tabela intermediária da Relação muitos-para-muitos ).

Preciso criar uma lista de Preço de Produtos que mostre o custo de determinado produto de cada fornecedor.

Onde eu devo colocar a coluna Preço ? na Tabela Produto_Fornecedor ou na tabela Produto.

Como seria a consulta que me retornasse a “Lista de Preço de Produtos”.

Se eu conseguir passar pelo desafio da construção da consulta a idéa é implentar em jsp.

Ficaria muito agradecido se alguem puder me dar uma luz.

7 Respostas

E

Um mesmo produto pode ter diversos preços - cada fornecedor tem o seu preço, não?

Além disso, um mesmo fornecedor pode fornecer diferentes produtos.

Crie uma tabela de preços e mais as necessárias para relacioná-las com fornecedores e produtos.

douglasmorais

Isso mesmo, um fornecedor tem varios produtos, um produto tem vários fornecedores. Até aí tudo bem, só não entendi ainda a questão do preço. Como seria essa tabela de preço, quais colunas ? E além dessa tabela de preço, quais seriam as outras necessárias que vc mencionou ?
valeu por responder

paulo1911

Olá douglasmorais,

Crie a tabela de Fornecedores e de Produtos com suas respectivas chaves primárias.(São as suas tabelas primárias).

Depois crie a tebela de Produtos_Fornecedor com os campos de id_Fornecedor e id_produto como chave primaria composta juntamente com o campo de preço, pois cada fornecedor tem um preço diferente de produto.

Na tabela de Produtos_fornecedor vc coloca o campo de preço tb…

Implementei essa modelagem quando desenvolvi um mini erp para um empresa de trabalhava com compra de material para construção civil.
Eles faziam cotação de tudo quanto era produto e material e tinha-se que obter um custo médio desse produto para licitações etc…

É nessa linha de modelagem que vc está?

Fallow

D

se um mesmo produto pode ter varios fornecedores, entao vc deve colocar esse preço na tabela Produto_Fornecedor…

e na consulta vc usaria o INNER JOIN para juntar as tabelas…(dê uma pesquisada nesse INNER JOIN).

vlw

douglasmorais

Valeu pela atenção Paulo 1911, a idéia é essa mesmo, fazer cotação.

Valeu Damião, mais tarde vou botar a mão na massa pra ver se sai alguma coisa

doravan

Na minha opinião vc poderia utilizar apenas Fornecedores e Produtos, onde em produtos vc teria a PK como código de barras.
A relação, evidentemente deveria ser OneToMany nesse caso, onde Um fornecedor pode ter vários produtos.

exemplo:
Fornecedor
->CNPJ (PK)
->Nome
->Endereço

Produtos
->CNPJ_Fornecedor_FK
->COD_BARRAS (PK)
->Descricao
->UnidadeDeMedida(cm,m,kg,t,unid,caixa)
->ValorCusto
->ValorVenda

Assim, por exemplo, vc poderia ter um mesmo produto, sendo fornecido por vários fornecedores, com código de barras diferentes, e preços diferentes

para ver a lista de preços/produtos seria bem simples

SELECT * FROM Produtos
LEFT JOIN Fornecedores ON Produtos.CNPJ_Fornecedor_FK = Fornecedores.CNPJ
ORDER BY ValorCusto

Aí vai variar o que mais vc quer adicionar na sua query, vc pode colocar um where, um group by ou até mesmo um sum.

douglasmorais

Valeu doravan

Vou tentar isso também

Criado 27 de dezembro de 2010
Ultima resposta 27 de dez. de 2010
Respostas 7
Participantes 5