FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Sumar campo con Puntos y Comas
Buenas.
Necesito sumar los valores de un campo de una base de datos, pero el mismo es de tipo character varying. como ide estoy usando Lazarus. intento usando la función sum() pero es para datos numéricos. Las opciones que tengo son: 1- cambiar el tipo de datos en la db. (El campo es character varying porque contiene números, Punto y Coma) ej: 2,345.56 desconozco si en postgres hay algún tipo de datos que los contenga y se pueda sumar. el resultado por medio de un datasource y una Zquery los quiero mostrar en un DBtext o un Label. Espero su ayuda!!! |
#2
|
||||
|
||||
¿De quién fue la idea de guardar números como texto?
Créate un nuevo campo numérico, pasa los datos convertidos a ese nuevo campo. Luego borras el campo de texto y renombras el nuevo numérico con el nombre que tenía el viejo de texto.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
La tabla se crea importando datos de un txt.
El problema es que me da un error al crear la tabla con el campo numérico. Por lo q entiendo es porq el valor tiene puntos y comas. Un mismo valor tiene un punto y una coma. Eh: 3,634.89 |
#4
|
||||
|
||||
Pues claro que da error, como tiene que ser
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Soy nuevo con esto.
"Pasar los datos" a que te referis? el campo numérico no me acepta datos con ese formato. cree una tabla nueva con un campo id y un campo numérico y intente cargar un valor asi: 2,567.43 y me da error. todo lo que necesito es definir el campo para que acepte ese tipo de valores. |
#6
|
||||
|
||||
Hola.
Agregando algo a lo sugerido por Casimiro, para eliminar esa ',' que te dificulta la conversión, podes hacer: El código está probado pero como siempre, te aconsejo hacer un resguardo de la tabla antes de ejecutarlo (reemplazá "LA_TABLA" y "EL_CAMPO" por los nombres que corresponda). Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Hola de nuevo.
Acabo de leer que PostgreSQL tiene la función OVERLAY que podría simplificar la sentencia si soportara cadena vacía en su segundo parámetro... Pero no puedo probarlo por que no tengo PostgreSQL aquí. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
|||
|
|||
Gracias.
No hay una forma de que el campo acepte esos valores del ejemplo? porque la db es usada por varios sistemas y cambiar los valores del campo puede afectar a otros sistemas que no tengo acceso. los valores varian, a veces tienen punto y coma, y a veces no ej: Costo 3,456.23 345.67 8,678.35 34.67 el sistema lo estoy desarrollando en el ide de codeTyphon con la conexión por Zeos. Explico un poco mas como funciona. 1 - Tomo un archivo txt con los datos. 2 - Creo una tabla para guardar los valores del archivo 3 - Importo los datos del txt a la tabla Acá el problema. en todas las pruebas, si el campo es numérico sale un error al importar los datos. Y el segundo problemas, es que la tabla la usan otros sistemas y requieren que el campo contenga los datos con el formato del ejemplo. Y el tercer problema es que no puedo sumar los valores del campo por no ser numérico Por eso se me había ocurrido cambiar el tipo de campo pero manteniendo el formato de los valores. Espero se entienda. Gracias por las sugerencias! |
#9
|
||||
|
||||
Guardar numeros como texto es un error garrafal, pero ssi es cierto que otros sistemas dependen de ese error y no puedes correjirlos (que seria lo correcto y aun con la ideas que te den deberias hacerlo, sin dudar), hay 2 formas de hacerlo.
La primera y obvia es ir convirtiendo cada valor en cada consulta que lo necesites. La otra es crear una columna extra, como
Y creas un trigger que haga la conversion al guardar, y sigues solo usando la columna correcta en tu app (mientras las otras se migran). Ahora bien, si esa tabla es solo para importar datos y luego transpasar a otras, entonces usas la primera version solamente.
__________________
El malabarista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Formato de pesos, puntos y comas | Yun-i | Varios | 10 | 08-03-2008 03:02:51 |
puntos y comas - decimales | Duc | API de Windows | 7 | 16-01-2008 18:40:15 |
comas por puntos | pruz | API de Windows | 4 | 05-07-2005 23:59:24 |
Comas o Puntos | pruz | Varios | 1 | 13-08-2004 21:18:42 |
comas decimales por puntos | Carmelo8 | Varios | 5 | 28-11-2003 02:45:23 |
|