Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DaniloTec

[Resolvido] Erro de lógica na query

Recommended Posts

Boa tarde gente.

Tenho uma query que busca o emial em dois campos na tabela (descEmail1 e descEmail2). Quando o usuário digitar um nome no formulário a busca vai procurar este email nos dois campos da tabela.

Fica mais ou menos assim:

select * from tbProspect where stsProspect = 'A' and descEmail Like '%nome%' or descEmail2 Like '%nome%' And codCliente = 7 
Até aí tranquilo. O problema é a última condição, que é a mais importante. O sistema é multicliente e eu só posso pegar os prospects cadastrados no cliente que eu estou logado.

Quando eu faço a busca ele busca os emails corretamente, mas lista os prospects de outros clientes também, acredito que seja por causa da clausula "Or" que está entre o Email1 e o Email2.

Como faço pra resolver isso?

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites
select * from tbProspect where stsProspect = 'A' and codCliente = 7 and (descEmail Like '%nome%' or descEmail2 Like '%nome%')

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe...beleza

a logica é simples como a solução: primeiro as condições exatas e depois as opcionais, sendo que, se está entre parenteses, a condição de saida deve ser verdadeira(por causa do AND antes). é que nem expressão matematica(primeiro calcula as operações de multiplicação/divisao e depois adição/subtração, o que está dentro de parenteses deve ser calculado antes operar com a operação externa)

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.