Autor Tópico: SQL - WHERE dar mais do que 1 condição  (Lida 933 vezes)

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
SQL - WHERE dar mais do que 1 condição
« Online: Julho 06, 2016, 07:45:28 am »
Bom dia,

Estava a tentar dar mais que 2 condições no WHERE com AND, mas ele não está a aceitar.
Tenho 5 condições que preciso dar no WHERE, como posso fazer?
Por exemplo: WHERE 
  ( tabelageral_sit_emprego.ativo > '0' AND tabelageral_sit_emprego.naodld >'0')
Preciso que mais 3 campos da mesma tabela tenham a mesma condição, como posso escrevê-la?
Tentei fazer assim
( tabelageral_sit_emprego.ativo AND tabelageral_sit_emprego.naodld AND  tabelageral_sit_emprego.dld AND tabelageral_sit_emprego.estudante AND  tabelageral_sit_emprego.reformado >'0'  )

Mas depois não me aparece nada na consulta.
« Última modificação: Julho 06, 2016, 07:49:05 am por Vandacardoso »

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:SQL - WHERE dar mais do que 1 condição
« Responder #1 Online: Julho 06, 2016, 07:52:20 am »
Tente assim:

WHERE CAMPO_1 > 0 AND CAMPO_2 > 0 AND CAMPO_3 > 0 AND CAMPO_4 > 0 AND CAMPO_5 > 0

Note que na segunda tentativa que você fez não é atribuído um valor de comparação aos campos.
« Última modificação: Julho 06, 2016, 07:54:28 am por Cleidson dos Santos »
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:SQL - WHERE dar mais do que 1 condição
« Responder #2 Online: Julho 06, 2016, 08:27:57 am »
Tente assim:

WHERE CAMPO_1 > 0 AND CAMPO_2 > 0 AND CAMPO_3 > 0 AND CAMPO_4 > 0 AND CAMPO_5 > 0

Note que na segunda tentativa que você fez não é atribuído um valor de comparação aos campos.

Cleidson,

Também já tentei isso e a consulta não retorna nenhum registo e dá erro.

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:SQL - WHERE dar mais do que 1 condição
« Responder #3 Online: Julho 06, 2016, 08:30:44 am »
Isso teria que fucionar, você pode postar mais informações da sua query?
Desta forma fica mais fácil de entender o erro.
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:SQL - WHERE dar mais do que 1 condição
« Responder #4 Online: Julho 06, 2016, 08:44:42 am »
Isso teria que fucionar, você pode postar mais informações da sua query?
Desta forma fica mais fácil de entender o erro.

Tentei novamente e não dá erro mas diz que não existem registos a apresentar. Depois clico em Pesquisa Avançada, faço a pesquisa e novamente diz que não existem registo a apresentar.

Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:SQL - WHERE dar mais do que 1 condição
« Responder #5 Online: Julho 06, 2016, 08:50:16 am »
Você precisa se certificar de que nas tabelas relacionadas a condição retorna algum registro.
Pelo que você falou as condições não estão sendo atendidas.
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:SQL - WHERE dar mais do que 1 condição
« Responder #6 Online: Julho 06, 2016, 09:00:58 am »
Você precisa se certificar de que nas tabelas relacionadas a condição retorna algum registro.
Pelo que você falou as condições não estão sendo atendidas.

Sim, aparecem registos. Só não aparecem quando faço o Where.
O meu SQL é esse:
SELECT
   tabelageral.ID,
   tabelageral.idse,
   tabelageral.nutentegip,
   tabelageral.nome,
   tabelageral_sit_emprego.ID,
   tabelageral_sit_emprego.ativo,
   tabelageral_sit_emprego.naodld,
   tabelageral_sit_emprego.dld,
   tabelageral_sit_emprego.estudante,
   tabelageral_sit_emprego.reformado,
   tabelageral_sit_emprego.incapcidade,
   tabelageral_sit_emprego.outra
FROM
   tabelageral LEFT OUTER JOIN tabelageral_sit_emprego ON tabelageral.ID = tabelageral_sit_emprego.ID
WHERE
  (tabelageral_sit_emprego.ativo>'0' AND  tabelageral_sit_emprego.naodld >'0' AND  tabelageral_sit_emprego.dld >'0' AND tabelageral_sit_emprego.estudante >'0' AND  tabelageral_sit_emprego.reformado >'0' AND tabelageral_sit_emprego.outra >'0')
ORDER BY
  tabelageral.ID


Cleidson dos Santos

  • Intermediário
  • ***
  • Mensagens: 175
    • Sistema para controle e Gerenciamento de Manutenção
    • Email
Re:SQL - WHERE dar mais do que 1 condição
« Responder #7 Online: Julho 06, 2016, 09:04:34 am »
No resultado sem o WHERE, todos os campos que precisam ser >0 são >0?
Como a condição é que em todas as tabelas relacionadas os campos precisam conter o valor >0, pode ser que em algum local os campos não sejam > 0.
Cleidson dos Santos
cleidsoncarneirodossantos@gmail.com
Skype: cleidson_santos1
WhatsApp: (15) 99635-4862

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:SQL - WHERE dar mais do que 1 condição
« Responder #8 Online: Julho 06, 2016, 10:09:59 am »
No resultado sem o WHERE, todos os campos que precisam ser >0 são >0?
Como a condição é que em todas as tabelas relacionadas os campos precisam conter o valor >0, pode ser que em algum local os campos não sejam > 0.

Tirei o último campo que era texto e aí não podia ser maior que zero. Todos os outros campos são ou 0 ou 1 (SQL é TinyInt e Número no SC).
Mas continua a dar sem registos para apresentar. Não entendo também é que so com 2 condições ele funciona e com mais não funciona.

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:SQL - WHERE dar mais do que 1 condição
« Responder #9 Online: Julho 06, 2016, 10:18:48 am »
No resultado sem o WHERE, todos os campos que precisam ser >0 são >0?
Como a condição é que em todas as tabelas relacionadas os campos precisam conter o valor >0, pode ser que em algum local os campos não sejam > 0.

Tirei o último campo que era texto e aí não podia ser maior que zero. Todos os outros campos são ou 0 ou 1 (SQL é TinyInt e Número no SC).
Mas continua a dar sem registos para apresentar. Não entendo também é que so com 2 condições ele funciona e com mais não funciona.

Ele não esta trazendo resultado porque 'a máquina' esta certa.

Vamos pensar igual ao computador.

Se eu estou pedindo pra ele me trazer 5 registros >0 e eu tenho na minha base:
CAMPO_1 > 1
CAMPO_2 > 1
CAMPO_3 > 1
CAMPO_4 > 0
CAMPO_5 > 1

Veja tem um campo que não esta satisfazendo a condição do WHERE.

O que fazer, faça uma consulta normal sem o WHERE e veja estes campos, se tem algum registro com os 5 campos diferentes de 0, se não tiver nunca vai mostrar nada.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:SQL - WHERE dar mais do que 1 condição
« Responder #10 Online: Julho 06, 2016, 10:53:49 am »
No resultado sem o WHERE, todos os campos que precisam ser >0 são >0?
Como a condição é que em todas as tabelas relacionadas os campos precisam conter o valor >0, pode ser que em algum local os campos não sejam > 0.

Tirei o último campo que era texto e aí não podia ser maior que zero. Todos os outros campos são ou 0 ou 1 (SQL é TinyInt e Número no SC).
Mas continua a dar sem registos para apresentar. Não entendo também é que so com 2 condições ele funciona e com mais não funciona.

Ele não esta trazendo resultado porque 'a máquina' esta certa.

Vamos pensar igual ao computador.

Se eu estou pedindo pra ele me trazer 5 registros >0 e eu tenho na minha base:
CAMPO_1 > 1
CAMPO_2 > 1
CAMPO_3 > 1
CAMPO_4 > 0
CAMPO_5 > 1

Veja tem um campo que não esta satisfazendo a condição do WHERE.

O que fazer, faça uma consulta normal sem o WHERE e veja estes campos, se tem algum registro com os 5 campos diferentes de 0, se não tiver nunca vai mostrar nada.

Obrigada Jailton!
Vai ficar mesmo sem o where. ;-)