Duvida em pesquisa...

Firebird

10/09/2004

Caros amigos estou com o seguinte problema.

Tenho um banco de dados com a tabela abaixo:

CREATE TABLE LOGRADOURO
(
CodLogradouro Integer NOT NULL,
Logradouro VarChar(70),
CodBairroInicial Integer,
CodBairroFinal Integer,
Cep VarChar(10),
NrInicial Integer,
NrFinal Integer,


PRIMARY KEY (CodLogradouro)
);

Esta tabela e de enderecos, bem tem ruas que sao grandes demais e passam por varios
bairros, e com isso a mesma rua tem varios ceps diferentes ao longo de sua extensao,
e o que eu preciso e o seguinte, preciso que ele pega o nome da rua e o nr que eu especifiquei,
localiza a rua e se a rua tiver o campo ´NrInicial´ e ´NrFinal´ preenchido alem dele achar a rua,
ele deve procurar entre as ruas dentro de que faixa a casa esta.

Exemplo:

Digamos que eu more na Avenida Paulista, em Sao Paulo/SP, no Nr 1200. Ai eu coloco em um Edit o endereco
e em outro o nr que eu moro, ele vai achar a avenida paulista, so que ela e dividida em 3 ´pedaços´ com
numero de ceps diferentes:
´1 registro ´Pedaço´ = ´NrIncial=0´ ao ´NrFinal=500´ Cep=380001´
´2 registro ´Pedaço´ = ´NrIncial=501´ ao ´NrFinal=1200´ Cep=380002´
´3 registro ´Pedaço´ = ´NrIncial=1201´ ao ´NrFinal=99999´ Cep=380002´

Alguem sabe como posso resolver isso?

Atenciosamente

Luiz Claudio V. Santos


Luiz.claudio.vieira

Luiz.claudio.vieira

Curtidas 0

Respostas

Rodolpho123

Rodolpho123

10/09/2004

Tente assim:
select Logradouro, Cep, NrInicial, NrFinal From Logradouro
Where
Logradouro Like ´sua_rua¬´  ==> ´´ Isto vai procurar o resultado mais parecido com o texto digitado´´
and
NrInicial is Not Null
and
NrFinal Is Not Null
and
´seu_numero´ >= NrInicial
and
´seu_numero´ <= NrFinal
Order By Logradouro



GOSTEI 0
Luiz.claudio.vieira

Luiz.claudio.vieira

10/09/2004

Este codigo deu certo para uma rua que tenha a os campos ´NrInicial´ e ´NrFinal´ preenchido, se eu digitar um que nao tem, pq a rua e pequena, ele nao traz nada, fica em branco, eu preciso que ele veja se a rua tem ou nao algum dos campos ´NrInicial´ e ´NrFinal´ preenchido. Como faço isso?

Um abraço a todos!


GOSTEI 0
Rodolpho123

Rodolpho123

10/09/2004

Qual é o BD que vc usa?


GOSTEI 0
Luiz.claudio.vieira

Luiz.claudio.vieira

10/09/2004

Uso o Firebird 1.5


GOSTEI 0
Vinicius2k

Vinicius2k

10/09/2004

Colega,

Tente desta forma... creio que vai ter o retorno que deseja...
select
    *L.LOGRADOURO,
    L.CEP
from
    LOGRADOURO L
where
    (L.LOGRADOURO like ´¬nome_da_rua_informada¬´) and
    (
      (L.NRINICIAL is null) and 
      (L.NRFINAL is null) or
      (´numero_informado´ between L.NRINICIAL and L.NRFINAL)
    )
order by
    L.LOGRADOURO


T+


GOSTEI 0
Luiz.claudio.vieira

Luiz.claudio.vieira

10/09/2004

Deu Certinho Vina, valeu!


GOSTEI 0
POSTAR