[RESOLVIDO] SQL - WHERE dar mais do que 1 condição

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.

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.

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.

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

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