Duvida em pesquisa...
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
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
Curtidas 0
Respostas
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
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!
Um abraço a todos!
GOSTEI 0
Rodolpho123
10/09/2004
Qual é o BD que vc usa?
GOSTEI 0
Luiz.claudio.vieira
10/09/2004
Uso o Firebird 1.5
GOSTEI 0
Vinicius2k
10/09/2004
Colega,
Tente desta forma... creio que vai ter o retorno que deseja...
T+
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
10/09/2004
Deu Certinho Vina, valeu!
GOSTEI 0