Estou com uma grande dificuldade em uma consulta, é o seguinte:
Tenho as tabelas:
Pedido
Campos: id | codigo_venda | cliente | Valor_total | ...
Descrição: Tabela que guarda o pedido com valor total da venda para fins financeiro
Venda
Campos: id | codigo_venda | cliente | produto | un_medida | preco_unitario | qtd | ...
Descrição: Tabela que guarda informações dos prdutos da venda para fins de detalhamento.
Cliente
Campos: id | nome | endereço | …
Descrição: Tabela que armazena os dados do cliente
Na minha aplicação(em php) tem uma parte que o cliente poderá selecionar mais de um pedido, na busca tenho que trazer a seguinte informação:
- O nome do produto não pode se repetir
- A quantidade dos produtos iguais precisa ser somado
- Caso o produto igual tenha valores diferentes deve-se aplicar a média ponderada do preço unitário
Tentei isso, sei q não é o ideal mais pelo menos estou me esforçando para apreender a trabalhar com novas consultas.
SELECT pedido_nf2.id,pedido_nf2.codigo_venda,pedido_nf2.cliente,pedido_nf2.data_emissao,pedido_nf2.data_saida, pedido_nf2.hora_saida,pedido_nf2.valor_total,venda.codigo_venda,venda.produto,venda.qtd, venda.preco_unitario,venda.un_medida,un_medida.id,un_medida.nome FROM pedido_nf2 INNER JOIN venda on pedido_nf2.id = $pedido AND pedido_nf2.codigo_venda=venda.codigo_venda AND venda.fornecedor='$cliente' INNER JOIN un_medida ON un_medida.id=venda.un_medida
Aplicação em PHP com Mysql
A variável $pedido acima é um vetor que contem o numero dos pedidos e esta dentro do laço de repetição. A consulta é realizada com sucesse mais lista todos os produtos repetidos, utilizei o DISTINCT mais não tive exito.
Alguém poderia me ajudar com essa tarefa?
Observações
Sinceramenta tenho conhecimento interemediário em Banco de Dados, no qual na maioria dos sistemas que crio é necessário instruções básicas de Insert, Delete, Select, Inner Join(Básica) e Update.
Agora surgiu essa pesquisa que esta sendo bom, pois estou pesquisando bastante e apredendo novas coisas, apenas nessa parte que estou com tal dificuldade.
Muito Grato pela atenção ,
Anderson Farias
Edição feita por: anderson farias, 17/07/2010, 00:12.