Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Campo texto a campo numerico con sql (https://www.clubdelphi.com/foros/showthread.php?t=78205)

ALVARO RUBIO 29-03-2012 03:10:59

Campo texto a campo numerico con sql
 
Uso una aplicaion que tien un tabla llamada facturas con un campo numero tipo integer y una tabla cartera con un campo cruce, char(15), requiero que los dos campos tengan el mismo tipo para realionarlos en varias consultas.

Solo tengo disponobilidad de herramientas SQL, Puedo crear un campo en la tabla cartera, tipo integer, y necesito colocar en este campo los valores que hay hoy en Cruce usando ena sentencia SQL.

Al crear el campo, le puedo decir que se llene con el valor que tenga el campo CRUCE.
Y que cada vez que se realice un nuevo registro en la tabla cartera, el campo nuevo se llene con el valor convertido a INTEGER de el campo Cruce.

Gracias a todos por dediacr su tiempo a colaborarme.


AR

Caral 29-03-2012 03:21:32

Hola
No entiendo.
Saludos

ALVARO RUBIO 29-03-2012 03:52:24

Creo que no estoy muy claro
 
De mi aplicacion necesito obtener informacion de dos tablas, solo que la llaveCAmpo) comun entre las dos es de diferente tipo, en una es caracter de 15, y en la otra es INTEGER.

Consulte y varias personas me digeron que mediante SQL, no podia hacer nada. Crei que la solucion era crear un nuevo campo que fuera del mismo tipo, para luego llenarlo con los datos del campo viejo, el cual seguira actualizandose.

El campo nuevo tendra el mismo tipo que el d ela otra tabla y asi podre conbinar la informacion.

Si al crear el campo, le pudiera incluir una isntruccion para que se llenara con los datos del campo viejo tipo char de 15, cada vez que en esa tabla se insete un registro, seria magnifico.

Los datos del campo nuevo los llenaria con una sentencia SQL, que me convierta el tipo CHAR15, en Integer.

Algo asi como
Update cartera set nuevocampo=integer(cruce), si INTEGER fuera la instruccion que me convierte el char a integer.


Gracias

AR

Caral 29-03-2012 04:00:44

Hola
Lo que no entiendo es para que necesitas que los campos sean del mismo tipo integer.
No se que estaras buscando, pero creo que podrias tomar ambos datos, pasarlos a variables y ahi dejar los datos como quieres sin necesidad de hacer un campo o tabla adicional.
Como digo: No entiendo la razon .
Saludos

Caral 29-03-2012 04:09:54

Hola
El hacer un campo y hacerle un update no seria muy complicado, no creo que se necesite hacer ningun cambio de la condicion (char/integer) ya que simplemente captaria el dato, eso si, si antes se hiciera el cambio mediante una variable que lo contenga, como dije anteriormente.
No he hecho ninguna prueba, pero creo que ademas necesitaras especificar la linea, osea, un campo que defina el update.
Saludos

Casimiro Notevi 29-03-2012 11:03:23

Definitivamente, no se entiende qué quiere hacer realmente

Al González 29-03-2012 19:48:16

Según lo comprendí tras varias lecturas, una vez creado el nuevo campo podrías usar una sentencia Update para rellenarlo con el contenido del viejo campo:

Código SQL [-]
Update Cartera Set NuevoCampo = Cruce

Aunque Cruce sea de tipo Char, me parece que tendría que funcionar mientras contenga dígitos decimales solamente (por ser NuevoCampo de tipo Integer).

Y para:

Cita:

Empezado por ALVARO RUBIO (Mensaje 428737)
[...] le pudiera incluir una isntruccion para que se llenara con los datos del campo viejo tipo char de 15, cada vez que en esa tabla se insete un registro

necesitarías un disparador After Insert.

No puedo asegurar que lo planteado sea la mejor solución al problema, porque el problema de fondo no lo has descrito (la necesidad de relación que mencionas al principio), así como tampoco has mencionado qué motor de base de datos utilizas. Esta información resultaría útil. :)

Saludos.

Al González 29-03-2012 20:28:31

Corrijo: lo del disparador sería mejor Before Insert.


La franja horaria es GMT +2. Ahora son las 15:34:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi