Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson_Souza

Consulta e Sub_Consulta + Distinct

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, basta trocar o igualdade do where por um IN

 

... where cliente = '15' ...

... where cliente in ('15','18') ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.