Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Codigo postal mas cercano

Estas en el tema de Codigo postal mas cercano en el foro de Bases de Datos General en Foros del Web. Hola! Estoy resolviendo una búsqueda y no se muy bien como hacerlo. Quiero encontrar, dado un código postal de referencia, el código postal de la ...
  #1 (permalink)  
Antiguo 19/05/2012, 12:40
 
Fecha de Ingreso: diciembre-2011
Mensajes: 29
Antigüedad: 12 años, 4 meses
Puntos: 3
Codigo postal mas cercano

Hola!

Estoy resolviendo una búsqueda y no se muy bien como hacerlo.
Quiero encontrar, dado un código postal de referencia, el código postal de la BD mas cercano por arriba O por abajo al de referencia.

Creo que tengo que hacer primero una condición en la que me distinga primero si es igual y si no ya busqua en la bd el mas cercano por arriba o por abajo. Pero no se muy bien ocmo hacerlo. Es algo así como una consulta doble? Una división?


Saludos!
  #2 (permalink)  
Antiguo 19/05/2012, 14:31
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Codigo postal mas cercano

Holas,

No sera como hacer un BETWEEN en tu sql?.

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 20/05/2012, 06:43
 
Fecha de Ingreso: diciembre-2011
Mensajes: 29
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Codigo postal mas cercano

No me sirve porque between te saca un rango, y lo que necesito es uno solo, el mas cercano. Y este este puede ser, tomando como referencia 18100,
De ntre lo mas ceranos ejemplos: 18110, 18120, 18001, 18111, 18099, 18097
En este caso eligiría el 18099

Pero si da la casualidad de qeu tambien está el 18101 pues supongo que tendría que sacar los dos.

Pero si resulta que está el mismo 18100 pues sacaría el 18100

Al final lo que quiero esque de entre todos los cp dados de alta, te muestre el mas cercano, ya sea el 18000 respeto del 18001 o reslecto del 28000. Si es el mas cercano pues dale
  #4 (permalink)  
Antiguo 20/05/2012, 06:52
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Codigo postal mas cercano

El rango lo puedes limitar a uno, pero bueno. Tendrias que buscar una logica o un patron para asi poder establacer cuales son los mas cercanos.

Porque tendrias que explicarte o explicarnos porque cuando selecciono: 18100, porque me deberia de devolver: 18110 ó 18120 ó 18001 ó 18111 ó 18099 ó 18097.

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 20/05/2012, 07:50
 
Fecha de Ingreso: diciembre-2011
Mensajes: 29
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Codigo postal mas cercano

Pues básicamente, a priori no están todos los codigos postales de toda españa. Los codigos irán aumentando la base de datos en función de los registros. Y lo que quiero es bbuscar el mas cercano de entre los que están registrados y el rango puede ser de 100 porque esté en la misma proncincia y solo haya uno o de 1000 si están en otra provincia.

No se si me explico con claridad. Perdonad si es así
  #6 (permalink)  
Antiguo 20/05/2012, 11:11
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Codigo postal mas cercano

Seria bueno ver el formato y como estes almacenando en tu Tabla el campo de codigos postales, si en varios campos separados por departamentos o provincias o distritos o localidades, etc. O capaz los tengas todo junto en uno solo.

Creo que podria ser algo como en un solo campo:

Cita:
SELECT * FROM tabla WHERE LEFT(campo,2)='18' ORDER BY campo LIMIT 0,100
O capaz lo tendrias en dos o mas campos (que creo que es lo mejor):

Cita:
SELECT * FROM tabla WHERE cod_prov='18' AND cod_distrito='00' .... LIMIT 0,100
Los SQL mencionados con ejemplos o algo parecidos a los que podrias usarlos. Si solo lo deseas obtener todo desde base de datos podrias usar Funciones o procedures en tu BD, si lo soporta claro, o sino tambien en un script de servidor.


Tambien podrias revisar como lo estructura y clasifica por ejemplo:

http://www.codigospostales.com/


Saludos
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 20/05/2012, 12:57
 
Fecha de Ingreso: diciembre-2011
Mensajes: 29
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Codigo postal mas cercano

Si, tengo todos los codigos en un solo campo porque en principio, solo va ha haber un registro por codigo postal. Es decir que no va hay dos registros, en este caso empresas, con el mismo codigo postal. Y solo necesito esa consulta.
Posiblemente solo haya pocos registros por provincia... 5? 10? algo así como mucho
  #8 (permalink)  
Antiguo 20/05/2012, 21:17
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Codigo postal mas cercano

Si seleccionas los primeros digitos o los dos te serviria de algo?. porque me imagino que las provincias mas cercanas estan o empiezan con el mismo digito o los primeros digitos o no?.

Saludos
__________________
.: Gildus :.
  #9 (permalink)  
Antiguo 22/05/2012, 04:47
 
Fecha de Ingreso: diciembre-2011
Mensajes: 29
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Codigo postal mas cercano

No. los dos primeros digitos son de provincia y los demas son internos de cada provincia.
Ejemplo. Granada es 18000
Madrid es 28000 y alomejor tu vives en madrid y la tienda mas cercana es en Granada, por ponerte un ejemplo

He pensado hacerlo por php
primero compara si hay uno igual, sino
chequea en orden todos los codigos postales desde el principio guardandolo mientras sea mejor que la referencia.
Cuando sea mayor: compara la diferencia de ese ultimo con la referencia y del anterior con la referencia y la diverencia menor, ese es el código mas cercano.

Es posible que no sea nada eficiente pero sería una solución, no ?
  #10 (permalink)  
Antiguo 22/05/2012, 19:09
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Codigo postal mas cercano

Claro que sería una solución, pero como estamos en la sección de Base de datos, tambien podria ser una función o procedure en tu base de datos, es una opcion. Pero creo que mejor es por lenguage en el servidor con PHP.

Saludos
__________________
.: Gildus :.

Etiquetas: bd, postal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:16.