Ir para conteúdo

POWERED BY:

Arquivado

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

Negrito

Como eu faço Comando em SQL para Filtrar varias Colunas !!&#33

Recommended Posts

ola Pessoal,Não tenho muitos conhecimentos em SQL , diria que sei me virar , mas agora estou tendo um problema de prosseguir com o meu aplicativo , pois eu preciso dar um comando em SQL para selecionar varias tabelas, o que eu preciso é o seguinte:- Selecionar os dados de 2 Tabelas , porem , eu só quero os dados da 1º tabela se o valor da 2º tabela for igual a 1 ou TRUESimples né ... ??? - Mas não para por aí .... Agora vem a parte mais complicada , pelo menos para mim :-(Dentro da minha tabela existem 4 colunas , sendo cada 1 com a sua tabela TRUE/FALSE , então no total eu tenho 8 colunas.Então como eu posso fazer um filtro para selecionar um valor existente dentro dessas tabelas , sendo que somente seja IGUAL a sua respectiva tabela TRUE ???Alguem poderia me ajudar !?Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ,Ficou meio confuso isso ao mas acho q se você usar o union deva funcionar.Explique melhor que posso te ajudar melhor tbm.select T1.campo1, T1.campo2, T1.campo3, T1.campo4From tabela1 as T1JOIN tabela1 as T2 on T1.campo1 = T2.campo1AND T2.campo1 = 'TRUE'UNIONselect T1.campo1, T1.campo2, T1.campo3, T1.campo4From tabela1 as T1JOIN tabela1 as T2 on T1.campo2 = T2.campo2AND T2.campo2 = 'TRUE'UNIONselect T1.campo1, T1.campo2, T1.campo3, T1.campo4From tabela1 as T1JOIN tabela1 as T2 on T1.campo3 = T2.campo3AND T2.campo1 = 'TRUE'UNIONselect T1.campo1, T1.campo2, T1.campo3, T1.campo4From tabela1 as T1JOIN tabela1 as T2 on T1.campo4 = T2.campo4AND T2.campo1 = 'TRUE'Espero que tenha ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Paulo,

 

Realmente acho que ficou confuso mesmo , pq nao consegui entender o seu codigo ... http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Bom, eu tenho uma tabela chamada: TBL_CLIENTES

 

Dentro dela eu tenho varios campos, porem vamos falar dos campos que eu quero, sao eles:

 

- email_resp (tipo texto)

- check_resp (True/False)

 

- email_ tec1 (tipo texto)

- check_tec1 (True/False)

 

- email_tec2 (tipo texto)

- check_tec2 (True/False)

 

- email_cob (tipo texto)

- check_cob (True/False)

 

Agora vamos ao codigo.

Eu preciso fazer uma busca de um determinado "EMAIL" , e esse EMAIL , pode estar em qualquer um desses campos. Porem , eu so quero os EMAIL que estão com o Check = TRUE

 

Se for TRUE a msg de retorno sera verdadeira , ou seja, o email existe e terei resultado do EMAIL na minha pesquisa. Porem se for FALSE o resultado tera que ser de EMAIL INEXISTENTE. Na verdade o email existe na tabela , mas o resultado se for FALSE nao podera ser verdadeiro.

 

Acho que agora ficou mais facil né !? :-)

 

Para ver se o email existe , eu estava usando o seguinte comando:

 

"SELECT email_resp , email_tec2 , email_tec1 , email_cob FROM tbl_clientes where email_resp AND email_tec2 AND email_tec1 AND email_cob = '" & email & "'" , onde email é uma variavel em ASP.

 

Ate ai facil ... ele faz uma pesquisa apenas dos emails , mas eu preciso juntar essa pesquisa com o seu CHECKBOX de cada um.

 

Desde já agradeço pela ajuda.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize o comando CASE WHEN [condicao] THEN VALOR1 ELSE VALOR2 END

 

select campo1, CASE WHEN check_resp = 1 THEN email_resp ELSE 'inexistente' END as campo2, campo3 from tabela where blablabla....

veja: http://forum.i evolution.com.br/index.php?showtopic=1974

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara

 

Sua explicação está mais clara agora. Mas uma coisa você omitiu: "Somente um campo de email está preenchido ou serão todos"?

 

Considerei q todos os campos de email estão preenchidos, e o status (TRUE/FALSE) que indica a validade do email. Irá ser exibido todos os dados independente de onde esteja gravado.

Usei o case que foi falado acima.

 

Irá imprimir algo do tipo,

 

Email | Status

--------------------------- | ----------------

teste@email.com | Existente

teste@imasters.com | Inexistente

cara@email.com | Existente

teste@email.com | Existente

 

 

 

 

 

SELECT 'Email' = email_resp,'Status' = CASE WHEN check_resp = 1 THEN 'Existente' ELSE 'inexistente' ENDFROM TBL_CLIENTESWHERE email_resp = @email UNIONSELECT 'Email' = email_tec1,'Status' =	  CASE WHEN ENDcheck_tec1 = 1 THEN 'Existente' ELSE 'Inexistente' ENDFROM TBL_CLIENTESWHERE email_tec1 = @email UNIONSELECT 'Email' = email_tec2,'Status' = CASE WHEN check_tec2 = 1 THEN 'Existente' ELSE 'Inexistente' ENDFROM TBL_CLIENTESWHERE email_tec2 = @email UNIONSELECT 'Email' = email_cob,'Status' = CASE WHEN check_cob = 1 THEN 'Existente' ELSE 'Inexistente' ENDFROM TBL_CLIENTESWHERE email_cob = @email

 

Espero que tenha ajudado

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.