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

 


Responder a