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

Dúvidas com SELECT


afukushima79

Pergunta

Olá pessoal, sou iniciante em banco de dados e estou com um problema e gostaria da ajuda de vocês.

Tenho que fazer uma consulta ao banco de dados para que retornar um determinado campo e a quantidade de vezes que ele aparece, porém, tem alguns filtros que devo aplicar antes.

Tenho uma tabela onde eu tenho diversos ID's de locais de venda. Tabela LOCAL com o campo de ID (LOCAL.ID)

Tenho uma outra tabela onde tenho todas as vendas que estes ID's fizeram. Tabela CPI com o campo de CODIGO e o LOCAL.ID

Tenho uma outra tabela com os codigos dos produtos e a status deste produto no estoque. Tabela PRODUTOS com o campo de CODIGO

Preciso retornar todos os status dos produtos que o ID vendeu.

Observações: Existe somente um ID e um CODIGO, porém, este ID pode ter vendido vários CODIGOS e eu tenho que ter o status de cada um destes CODIGOS.

Atualmente faço isso através de 3 SELECT's distintos.

select ID from LOCAL

while(read())

select CODIGO from CPI where ID=LOCAL.ID

while(read())

select STATUS from PRODUTOS where CODIGO=CPI.CODIGO

while(read())

gravo em variaveis para utilizacao posterior

O problema disso é que a lista de ID's pode ser grande (+ de 1000)

Fico grato de qualquer ajuda que for dada.

Abraços, Alexandre

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'afukushima79'

Pelo que entendi você quer uma consulta assim:

select L.ID, P.CODIGO, P.STATUS 
from PRODUTOS P
inner join  from CPI ON CPI.CODIGO=P.CODIGO
inner join LOCAL L ON L.ID=CPI.ID
Para contar os status por lodigo e local, você pode usar a seguinte variação:
select L.ID, P.CODIGO, P.STATUS, count(P.STATUS)
from PRODUTOS P
inner join  from CPI ON CPI.CODIGO=P.CODIGO
inner join LOCAL L ON L.ID=CPI.ID
group by L.ID, P.CODIGO, P.STATUS

Recomendo que você leia livros sobre sql e o manual do mysql.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Denis, muito obrigado pela ajuda. Tenho lido quase diariamente o Manual on-line do MySQL (http://dev.mysql.com) mas mesmo assim algumas práticas dos exemplos não conseguia colocar em prática.

Ontem a noite após erros e mais erros de sintax cheguei a este SELECT:

select STATUS from PRODUTOS

join CPI ON CPI.CODIGO=PRODUTOS.CODIGO WHERE CPI.ID="variavel";

Neste eu consegui pegar os status dos produtos e listados direitinho, porém o ID do vendedor tinha que informar manualmente.

Tentei colocar mais um JOIN mas não ia.

Hoja a noite eu testo com o seu exemplo e aviso o resultado.

Mais uma vez, obrigado pela ajuda.

Abraço, Alexandre

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