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

Campos Diferentes

Estas en el tema de Campos Diferentes en el foro de PostgreSQL en Foros del Web. buen dia espero me puedan apoyar tengo 2 tablas en una tabla tengo un campo que se llama tarjeta el cual esta dado de la ...
  #1 (permalink)  
Antiguo 09/04/2013, 15:17
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 0
Campos Diferentes

buen dia espero me puedan apoyar

tengo 2 tablas

en una tabla tengo un campo que se llama tarjeta el cual esta dado de la siguiente manera 10000001
en la otra tabla el mismo campo llamado tarjetas lo tengo de la siguiente forma 0010000001

de que manera se puede hacer para relacionar este campo

de antemano gracias
  #2 (permalink)  
Antiguo 09/04/2013, 15:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Campos Diferentes

pasandolo a numerico.
Por ende, se eliminarian los dos primeros ceros del segundo paramero que mencionas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 10/04/2013, 16:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Campos Diferentes

lo que pasa es que en esa BD no tengo derecho de editar las tablas

mi duda es saber como se puede hacer para relacionarlos?

tengo estos casos
0010000001
0100000001
1000000001
y cuando hago la consulta solo me trae estos 1000000001 los otros no por que tengo los 0's
  #4 (permalink)  
Antiguo 11/04/2013, 08:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Campos Diferentes

sval, pero asi no tuvieras los ceros al inicio, serían numeros o cadenas diferentes.
10000001 es diferente de
100000001 y diferente de
1000000001

No logro entender realmente que es lo que requieres.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 15/04/2013, 15:39
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Campos Diferentes

ok deja me explico un poco mejor

tengo dos tablas con un campo por el cual se relacionan el campo se llama tarjeta

te pongo un ejemplo

tabla1
tarjeta ...
10000001
10000002
...
100000001
100000002
...
1000000001
1000000002

estos son los datos que contiene la tabla 1, entre otros campos

tabla 2
tarjeta ...
0010000001
0010000002
...
0100000001
0100000002
...
1000000001
1000000002

en la tabla 2 son los mismos valores pero con un a 10 dígitos, lo malo es que en la tabla 2 me rellena los campos que son menores a 10 dígitos anteponiéndoles 0's

lo que yo quisiera que me pudieran ayudar a decir es como relaciono estos campos

es decir

tabla relacionada

tarjeta tabla1__________tarjeta tabla2
10000001_____________0010000001
10000002_____________0010000002
...
100000001____________0100000001
100000002____________0100000002
...
1000000001___________1000000001
1000000002___________1000000002

espero me puedas ayudar

gracias
  #6 (permalink)  
Antiguo 15/04/2013, 15:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Campos Diferentes

Debes forzar el campo que contiene los ceros a que sea numerico.

Código SQL:
Ver original
  1. SELECT *FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1=tabla2.campo2::INTEGER;

El ::integer castea ese varchar a numerico.

Prueba eso.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 21/05/2013, 15:44
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Campos Diferentes

con esto funciono

SELECT *FROM tabla1
JOIN tabla2 ON (LPAD(tarjeta1,10,'0')) = tarjeta2

gracias

Etiquetas: campos, tabla
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 11:52.