Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Venho através solicitar uma ajuda de vcs, pois tenho um grande problema em fazer uma consulta no qual eu possa juntar varios pedidos de um cliente em um só relatório.
Bom eu fiz essa consulta e nela eu consigo trazer todos os dados especifico desse cliente mas o problema é que os dados vem separado.
Ex: $sql = "SELECT DISTINCT
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 ";
Essa consulta me traz os seguintes dados.
TABELA: VENDA
TABELA: PEDIDO_NF2
ID| PRODUTO | UN_MEDIDA | QTD | PRECO_UNITARIO |PRECO_TOTAL
15 | Castanha | Kg | 2 | 0.78 | 1.56
15 | Aipim | Kg | 3 | 0.44 | 1.32
15 | Tomate | Kg | 10 | 0.56 | 5.6
15 | Uva | Pct | 5 | 0.56 | 2.8
15 | Salsa | Mç | 3 | 0.56 | 1.68
ID| PRODUTO | UN_MEDIDA | QTD | PRECO_UNITARIO |PRECO_TOTAL
18 | Aipim | Kg | 200 | 0.50 | 100
18 | Alface | Kg | 3 | 0.99 | 2.97
18 | Manga | Kg | 160 | 1.00 | 160
18 | Cebola | Kg | 47 | 2.79 | 131.13
18 | Uva | Pct | 60 | 4.05 | 243
18 | Salsa | Mç | 20 | 0.86 | 17.2
Então como eu poderia juntar esses dados e transformar num só.
vejamos no exemplo anterior, esse cliente tem dois pedidos e em cada um pedido tem uma duplicação do item (AIPIM), pois como eu poderia fazer com essa consulta juntar os dois pedidos e quando tiver produto iguais mostrar apenas um e dai fazer uma soma da quantidade, multiplicar por PRECO_UNITARIO e depois somar o PREÇO_TOTAL.
Grato, espero que eu tenha explicado bem.
>
Pelo que entendi, basta trocar o igualdade do where por um IN
... where cliente = '15' ...
... where cliente in ('15','18') ...
Olá Motta, só fiquei com uma duvida de como eu vou utilizar esse WHERE nessa consulta, em qual parte ela entra?
Grato.
Creio que aqui
INNER JOIN venda on pedido_nf2.id = $pedido AND pedido_nf2.codigo_venda=venda.codigo_venda AND venda.fornecedor='$cliente'
O $ indica um parametro, não ?
Só não sei como seria a síntaxe para o IN.
Olá Mota, diante de tudo isso, qual comando no Mysql eu poderia utilizar para fazer a junção de dois pedidos de um cliente, sendo que eles vão estar com o codigo_pedido diferentes.
Eu queria fazer a junção dos produtos deles sem que ele se repita na visualização e depois somar os valores desses dois item.
Ok, Grato!
Group by...
Select produto, max(un_medida) un_medida , sum(qtd) total_qtde, max(preco_unitario) , (sum(qtd) * max(preco_unitario)) preco_total
from tabela
group by produto
ai depois você junta sua tabela de cliente la e talz.
Pelo que entendi, basta trocar o igualdade do where por um IN
... where cliente = '15' ...
... where cliente in ('15','18') ...