Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
dandrade

Montar SQL específico

Question

https://ibb.co/x6jWnWz

De acordo com o diagrama acima (banco MySQL):
Preciso que mostre a quantidade de produtos de um mesmo modelo para único pedido.
Enfim, uma lista capaz de identificar quantos equipamentos do mesmo modelo foram enviados ao cliente, tendo em comum o número_pedido.

Já tentei $sql="SELECT data_envio, caixa.numero_pedido, nome_cliente, modelo.nome,conteudo.quantidade FROM conteudo,equipamento, caixa, pedido,cliente, modelo WHERE pedido.numero_pedido = conteudo.numero_pedido AND cliente.idcliente = pedido.cliente_idcliente AND modelo.idmodelo = conteudo.modelo_idmodelo GROUP BY caixa.numero_pedido";

Tabela desejada

| Data de envio |numero_pedido | nome cliente | modelo.nome | conteudo.quantidade
03/03/2020            5555                Loja 1                Impressora                    03
03/03/2020            5555                Loja 1                mouse                            13
03/03/2020            5555                Loja 1                CPU                                05
03/03/2020            5555                Loja 1                Teclado                          05
04/03/2020            1111                Loja 2                Teclado                          02
04/03/2020            1111                Loja 2                Impressora                    02
04/03/2020            1111                Loja 2                Monitor                           02
04/03/2020            6666                Loja 1                Monitor                           04

|Grato a quem pode ajudar.

Edited by dandrade

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Em 04/03/2020 em 09:18, dandrade disse:

SELECT data_envio, caixa.numero_pedido, nome_cliente, modelo.nome,conteudo.quantidade FROM conteudo,equipamento, caixa, pedido,cliente, modelo WHERE pedido.numero_pedido = conteudo.numero_pedido AND cliente.idcliente = pedido.cliente_idcliente AND modelo.idmodelo = conteudo.modelo_idmodelo GROUP BY caixa.numero_pedido

Neste select você não há menção às tabelas equipamento e caixa em associação com outra tabela.

Outro problema é o do GROUP BY. Ele pressupõe que você fará algum tipo de agrupamento usando SUM, COUNT ou outra função deste tipo. No select acima não existe nenhuma destas funções.

usando a sintaxe correta, abaixo podemos ver onde estão os erros mais graves de sua select

SELECT data_envio, cx.numero_pedido, nome_cliente, m.nome, co.quantidade 
FROM conteudo co
INNER JOIN pedido p ON p.numero_pedido = co.numero_pedido
INNER JOIN cliente cl ON cl.idcliente = p.cliente_idcliente
INNER JOIN modelo m ON m.idmodelo = co.modelo_idmodelo
INNER JOIN equipamento e ON ??????
INNER JOIN caixa cx ON ?????
WHERE ?????
GROUP BY cx.numero_pedido

Se você vai agrupar somente por numero_pedido então não haverá necessidade dos campos data_envio, nome_cliente, e m.nome. E o campo co.quantidade deverá estar em uma das funções de agrupamento mencionadas acima.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148382
    • Total Posts
      643763
×
×
  • Create New...