Faça um IF e adicione a pesquisa por profissão somente se vc informar algum codigo na consulta....
if ed_cd_profissao <> '' then sql.add(' and campo ....' + ed_cd_profissao.text) e pra fechar: sql.add(' order by ....) Entenda que para isto funcionar voce nao vai poder passar como parametro e sim atraves do ADD.... bye Jean ----- Original Message ----- From: Jeferson Adoryan To: delphi-br@yahoogrupos.com.br Sent: Tuesday, August 22, 2006 5:52 PM Subject: [delphi-br] Select Complexo e Complicado Boa tarde pessoal Estou fazendo um select onde eu trago os dados do contribuinte (para alguns dados tenho tabelas auxiliares, como profissao, bairro, cidade, rua). Nesse select, eu posso localizar por profissao, rua, bairro, cidade, cep, estado_civil, aposentado e sexo, posso ter todas as opcoes, algumas ou apenas uma. Segue abaixo um exemplo que esta quase funcionando, o problema eh quando os campos chave estrangeira na tabela contribuinte sao NULL. Quando o usuario nao seleciona profissao por exemplo, passo '%' como parametro. select c.CD_CLIENTE, c.NOME, c.NUMERO, c.ESTADO, c.CEP, c.DATA_NASCIMENTO, c.TELEFONE1, c.TELEFONE2, c.E_MAIL1, c.E_MAIL2, c.ESTADO_CIVIL, c.APOSENTADO, p.DESCRICAO, cd.CIDADE, b.BAIRRO, r.RUA, CASE WHEN c.SEXO = 'M' then 'Masculino' else 'Feminino' end as SEXO, CASE WHEN c.APOSENTADO = 'S' then 'Sim' else 'Não' end as APOSENTADO from GCCADASTRO c, GCPROFISSAO p, GCCIDADE cd, GCBAIRRO b, GCRUA r where (p.DESCRICAO like (:profissao)) and (c.PROFISSAO = p.CD_CONTROLE) and (c.CIDADE = cd.CD_CIDADE) and (c.BAIRRO = b.CD_BAIRRO) and (c.RUA = r.CD_RUA) and (upper(b.BAIRRO) like upper(:bairro)) and (upper(cd.CIDADE) like upper(:cidade)) and (upper(r.RUA) like upper(:rua)) and (upper(c.CEP) like upper(:cep)) and (c.SEXO like :sexo) and (upper(c.ESTADO_CIVIL) like upper(:estcivil)) and (c.APOSENTADO like :apos) order by c.NOME como eu poderia melhorar esse select?? Obrigado a todos _______________________________________________ Jeferson Adoryan Técnico em Desenvolvimento de Software Objetiva Informática LTDA Fone: (55) 3375 3828 Celular: (55) 8115 4544 Linux Counter #404063 Home Page: http://adoryan.byethost24.com ============================= www.softtotal.com.br www.firehost.com.br Panambi - RS --------------------------------- Yahoo! Search Música para ver e ouvir: You're Beautiful, do James Blunt [As partes desta mensagem que não continham texto foram removidas] ------------------------------------------------------------------------------ Internal Virus Database is out-of-date. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.10.8/415 - Release Date: 09/08/06 [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html