SQL

KAIBOLL 28/08/2010 16:49:26
#351573
Boa tarde pessoal, estou com a seguinte dúvida:

Tenho uma tabela com dois campos Cargo1 e Cargo2

o select é o seguinte : select * from tabela where Cargo1=[ô]NomedoCargo[ô] or Cargo2=[ô]NomedoCargo[ô]

um mesmo cargo pode vir tanto no primeiro cargo quanto no segundo.

acontece que o select fica limitado a primeira condição se vc for usar por exemplo o LIKE, ele só selecionas os registos onde o Cargo1 é verdadeiro. Queria colocar para as duas condições ou Cargo1 ou Cargo2, alguém tem alguma idéia?



KAIBOLL 03/09/2010 09:08:55
#352096
é mais ou menos assim que eu quero v se dá pra entender

Cargo1 or Cargo2=[ô][Ô] & cboProfissão.Text & [Ô][ô]
ALVAROVB2009 03/09/2010 09:27:27
#352099
Kaiboll da uma olhadinha no site http://www.macoratti.net/ado_filt.htm, pode ser algum detalhe que vc esta esquecendo, pois para mim o código que você esta usando deveria funcionar

Espero ter te ajudado, se te ajudei encerre o tópico e me pontuei, senão coloca a sua dúvida para a gente te ajudar
KAIBOLL 03/09/2010 10:54:29
#352106
Exitem 3 campos cargo1,cargo2 e nome

[Ô]select * from tabela where Cargo1=[ô][Ô] & cboProfissão.Text & [Ô][ô] or Cargo2=[ô][Ô] & cboProfissão.Text & [Ô][ô] and nome like [ô][Ô] & txtFiltro.Text & [Ô]*[ô] order by Nome[Ô]

tipow o mesmo cargo pode vir tanto no cargo1 ou cargo2 e ainda usar o like para filtrar.

ele traz ou um ou outro, mas junto com o like ele spo filtra apenas os registros que estão no Cargo1.

KAIBOLL 03/09/2010 10:57:17
#352107
eu acho que não tem jeito
JCARLOS 03/09/2010 11:15:09
#352110
Resposta escolhida
Misturar or e and tem de examinar bem, senão, vira uma salada só. Vc teria de separar por parênteses:
[Ô]select * from tabela where (Cargo1=[ô][Ô] & cboProfissão.Text & [Ô][ô] or Cargo2=[ô][Ô] & cboProfissão.Text & [Ô][ô]) and nome like [ô][Ô] & txtFiltro.Text & [Ô]*[ô] order by Nome[Ô]
No caso vc está querendo que o nome seja = txtfiltro e (cargo1 ou cargo2 seja = cboprofissão.txt).
KAIBOLL 03/09/2010 11:50:03
#352112
valeu brother deu certo aqui era só os parênteses mesmo..

muito obrigado
Tópico encerrado , respostas não são mais permitidas