Re: [delphi-br] Select Complexo e Complicado
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
Re: [delphi-br] Select Complexo e Complicado
Valeu, vou testar essa ideia e a do Danilo, depois posto os resultados. Jean [EMAIL PROTECTED] escreveu: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] ___ 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 - Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o Yahoo! Respostas! [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
Re: [delphi-br] Select Complexo e Complicado
O banco é Firebird 1.5.3 Bom, vou testar as dicas que me passou. Vou tentar tambem fazer o select dinamico de acordo com a escolha. Depois posto o resultado Assim, o campo sexo e aposentado sempre tem algum valor, o maior problema é com profissao. Valeu Danilo Rogério [EMAIL PROTECTED] escreveu:Jeferson, ajudaria muito se você dissesse: 1 - qual banco está utilizando, pois existem comandos específicos que poderiam ajudar ... Mas vamos lá. 1º Passo: A grosso modo, sugiro você montar seu select em tempo de execução, se for possível, pois vc eliminaria esses likes desnecessários. 2º Passo: Em relação aos campos SEXO, APOSENTADO. Eles só aceitam M ou F, e S ou N, respectivamente, certo? Então, vc poderia substituí-los por: and (c.SEXO = COALESCE(:SexoPessoa,c.Sexo)) // Firebird ou entao and (c.SEXO = DECODE(:SexoPessoa,Null,C.Sexo,:SexoPessoa)) // Oracle Neste caso, vc esta dizendo que se o Parametro(:SexoPessoa) for igual a nulo, vc ira comparar C.Sexo = C.Sexo, trazendo todos os registros... Faça isso com o campo Aposentado também. 3º Passo: Para os campos de Like faça assim: and (upper(b.BAIRRO) like (coalesce(:bairro,upper(b.bairro))) //Firebird and (upper(b.BAIRRO) like (decode(:bairro,null,b.bairro,:bairro)) // Oracle Qual é a ideia neste segundo passo: se o usuário NÃO informar o bairro(ou seja, nulo), ficara assim: and (upper(b.bairro) like upper(b.bairro). Novamente comparando o campo com ele mesmo. Agora, caso ele informe vc concatena o % no final do seu parâmetro. Jeferson, veja se essas dicas vão melhorar sua performance, e poste a resposta, pois muita gente tem esse tipo de problema, e com certeza, fica uma solução prática(caso a performance seja satisfatória). No mais, boa sorte, e aguardamos resposta... Danilo Rogério Jeferson Adoryan [EMAIL PROTECTED] escreveu: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] - 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] ___ 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 - Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! [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
Re: [delphi-br] Select Complexo e Complicado
Bom pessoal, primeiro agradeco pelas dicas passadas. Estou colocando a solucao que cheguei para o meu problema. Usei um sql dinamico, onde eu ia adicionando os wheres... ficou mais ou menos assim... comando := '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, '+ '(select p.DESCRICAO from gcprofissao p where p.cd_controle = c.profissao) as prof, '+ '(select cd.CIDADE from gccidade cd where cd.cd_cidade = c.cidade) as cidade, '+ '(select b.BAIRRO from gcbairro b where b.cd_bairro = c.bairro) as bairro, '+ '(select r.rua from gcrua r where r.cd_rua = c.rua) as 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 '; Depois eu fui testando as escolhas do usuario e adicionando as condicoes... if CbxProfissao.ItemIndex 0 then begin comando2 := comando2 + '(c.profissao = (select p1.cd_controle from gcprofissao p1 where p1.descricao like ('''+ CbxProfissao.Text +''')))'; //proximo comando precisa de and coloca_and := true; end; //verifica rua if CmbxRua.ItemIndex 0 then begin if coloca_and then comando2 := comando2 + ' and '; comando2 := comando2 + '(c.rua = (select r1.cd_rua from gcrua r1 where r1.rua like ('''+ CmbxRua.Text +''')))'; //proximo comando precisa de and coloca_and := true; end; e assim por diante... Funcionou numa boa, e acessando por rede em um banco com mais de 50.000 reg fico satisfarotio... Jeferson Adoryan [EMAIL PROTECTED] escreveu:O banco é Firebird 1.5.3 Bom, vou testar as dicas que me passou. Vou tentar tambem fazer o select dinamico de acordo com a escolha. Depois posto o resultado Assim, o campo sexo e aposentado sempre tem algum valor, o maior problema é com profissao. Valeu Danilo Rogério [EMAIL PROTECTED] escreveu:Jeferson, ajudaria muito se você dissesse: 1 - qual banco está utilizando, pois existem comandos específicos que poderiam ajudar ... Mas vamos lá. 1º Passo: A grosso modo, sugiro você montar seu select em tempo de execução, se for possível, pois vc eliminaria esses likes desnecessários. 2º Passo: Em relação aos campos SEXO, APOSENTADO. Eles só aceitam M ou F, e S ou N, respectivamente, certo? Então, vc poderia substituí-los por: and (c.SEXO = COALESCE(:SexoPessoa,c.Sexo)) // Firebird ou entao and (c.SEXO = DECODE(:SexoPessoa,Null,C.Sexo,:SexoPessoa)) // Oracle Neste caso, vc esta dizendo que se o Parametro(:SexoPessoa) for igual a nulo, vc ira comparar C.Sexo = C.Sexo, trazendo todos os registros... Faça isso com o campo Aposentado também. 3º Passo: Para os campos de Like faça assim: and (upper(b.BAIRRO) like (coalesce(:bairro,upper(b.bairro))) //Firebird and (upper(b.BAIRRO) like (decode(:bairro,null,b.bairro,:bairro)) // Oracle Qual é a ideia neste segundo passo: se o usuário NÃO informar o bairro(ou seja, nulo), ficara assim: and (upper(b.bairro) like upper(b.bairro). Novamente comparando o campo com ele mesmo. Agora, caso ele informe vc concatena o % no final do seu parâmetro. Jeferson, veja se essas dicas vão melhorar sua performance, e poste a resposta, pois muita gente tem esse tipo de problema, e com certeza, fica uma solução prática(caso a performance seja satisfatória). No mais, boa sorte, e aguardamos resposta... Danilo Rogério Jeferson Adoryan [EMAIL PROTECTED] escreveu: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 =
[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] -- 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
Re: [delphi-br] Select Complexo e Complicado
Jeferson, ajudaria muito se você dissesse: 1 - qual banco está utilizando, pois existem comandos específicos que poderiam ajudar ... Mas vamos lá. 1º Passo: A grosso modo, sugiro você montar seu select em tempo de execução, se for possível, pois vc eliminaria esses likes desnecessários. 2º Passo: Em relação aos campos SEXO, APOSENTADO. Eles só aceitam M ou F, e S ou N, respectivamente, certo? Então, vc poderia substituí-los por: and (c.SEXO = COALESCE(:SexoPessoa,c.Sexo)) // Firebird ou entao and (c.SEXO = DECODE(:SexoPessoa,Null,C.Sexo,:SexoPessoa)) // Oracle Neste caso, vc esta dizendo que se o Parametro(:SexoPessoa) for igual a nulo, vc ira comparar C.Sexo = C.Sexo, trazendo todos os registros... Faça isso com o campo Aposentado também. 3º Passo: Para os campos de Like faça assim: and (upper(b.BAIRRO) like (coalesce(:bairro,upper(b.bairro))) //Firebird and (upper(b.BAIRRO) like (decode(:bairro,null,b.bairro,:bairro)) // Oracle Qual é a ideia neste segundo passo: se o usuário NÃO informar o bairro(ou seja, nulo), ficara assim: and (upper(b.bairro) like upper(b.bairro). Novamente comparando o campo com ele mesmo. Agora, caso ele informe vc concatena o % no final do seu parâmetro. Jeferson, veja se essas dicas vão melhorar sua performance, e poste a resposta, pois muita gente tem esse tipo de problema, e com certeza, fica uma solução prática(caso a performance seja satisfatória). No mais, boa sorte, e aguardamos resposta... Danilo Rogério Jeferson Adoryan [EMAIL PROTECTED] escreveu: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] - 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] -- 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