Ir para conteúdo
Fórum Script Brasil
  • 0

Montar SQL específico


dandrade

Pergunta

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.

Editado por dandrade
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...