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

Actualizacion de campos

Estas en el tema de Actualizacion de campos en el foro de PostgreSQL en Foros del Web. Hola Tengo un problema con el contenido de dos campos espero alguien me pueda dar una solucion. Resulta que tengo un campo llamado cantidad de ...
  #1 (permalink)  
Antiguo 01/07/2008, 16:13
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años, 7 meses
Puntos: 0
Pregunta Actualizacion de campos

Hola
Tengo un problema con el contenido de dos campos espero alguien me pueda dar una solucion.
Resulta que tengo un campo llamado cantidad de tipo numeric(14,3),
cuando inserte registros tenia problemas con los puntos y decidi quitarles el punto y meterlo como entero. ejemplo:

2045 y al consultarlo en mi tabla lo puso como 2045.000 pero en realidad el dato lo necesito con su punto decimal, hay alguna manera de actualizar ese dato y dejarlo con su valor de 20.45 que es el dato correcto, lo intente de esta forma pero es muy tardado ya que tengoo que ir registro por registro:


------------------------------------------------------------------
UPDATE tabla SET cantidad='20.450'
WHERE tabla.id=1822
AND tabla_id=8731

-------------------------------------------------------------------


Si alguien conoce alguna forma mas rapida de obtener el mismo resultado por favor ayudeme.
  #2 (permalink)  
Antiguo 02/07/2008, 03:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Actualizacion de campos

Vamos por partes...

Por que te ha dado problemas el . (punto)????
Ahora hablas de 2045 pero el update habla de 20.450.....
Si todos los registros siguen el mismo patron, por ejemplo, todos son con 2 decimales se puede hacer con un simple update:

Código:
aemprende=# create table aaa(id numeric(10,3));
CREATE TABLE
aemprende=# insert into aaa VALUES (12311);
INSERT 0 1
aemprende=# insert into aaa VALUES (12222);
INSERT 0 1
aemprende=# select * from aaa;
    id
-----------
 12311.000
 12222.000
(2 filas)

aemprende=# update aaa set id = id / 100;
UPDATE 2
aemprende=# select * from aaa;
   id
---------
 123.110
 122.220
(2 filas)

Salu2
  #3 (permalink)  
Antiguo 02/07/2008, 08:51
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Actualizacion de campos

Hola seyko gracias por responder.
Me ha dado problema por que altere las cantidades y ovbiamente fue error mio el meterlos como enteros sin sus respectivos decimales.
El campo guarda tres decimales algunas cantidades son de 6 digitos y otras de 5 o 4 digitos.
Probare el update que dices gracias.
  #4 (permalink)  
Antiguo 03/07/2008, 02:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Actualizacion de campos

no es cuestión de los digitos que tengan los integer, al referirme a un patron comun me refiero a que todos tengan la misma cantidad de decimales:
2 decimales --> x / 100
3 decimales --> x / 1000
...


Salu2
  #5 (permalink)  
Antiguo 03/07/2008, 11:25
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Actualizacion de campos

Ok entiendo pero no algunos tienen 2 o 3 decimales y algunos otros no tienen decimales.
  #6 (permalink)  
Antiguo 04/07/2008, 02:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Actualizacion de campos

ese es el problema.....
al menos puedes hacer un update de todos los que sean del "mismo tipo":

update tabla set num = num / 100 where id in (ids de 2 decimales);
update ...

salu2
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 09:45.