FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Funcion SUM me regresa una cadena
Hola a todos
Estoy haciendo un reporte que toma sus datos de la siguiente consulta Código:
Select sum(T.MONTO) , e.nombre as e_nombre , e.id_empresa as id_estacion , c.nombre as c_Nombre , c.ID_CLIENTE , tc.NUMERO_TARJETA , tc.ID_TARJETA , co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO , t.CONSECUTIVO , t.ID_TICKET From CORTE CO, TICKET__RELACION_IA T , empresa e , cliente c , TARJETA_CLIENTE TC Where CO.ID_CORTE = T.ID_CORTE and t.id_empresa = e.ID_EMPRESA AND CO.ID_ESTACION = E.ID_EMPRESA and t.id_cliente = c.ID_CLIENTE AND T.ID_TARJETA = TC.ID_TARJETA Group by e.id_empresa, e.nombre, c.NOMBRE, c.ID_CLIENTE, tc.NUMERO_TARJETA, tc.ID_TARJETA, co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO, t.CONSECUTIVO, t.ID_TICKET Pero sucede que cuando pongo una mascara al TQRDBText, me escribe el nombre del campo (ósea SUM). Entonces en la ventana de whatches vi que el valor que me regresaba en ese campo era una cadena, ejemplo; DataSet.FieldByName(‘SUM’).Value = ‘520.35’ Por lo anterior no puedo poner mascaras al TQRDBText que me muestra este campo y tampoco puedo hacer sumatoria de los resultados en un QRExpr Alguien me puede explicar por qué me regresa el valor del la sumatoria en cadena, y como puedo solucionarlo. De antemano gracias. |
#2
|
||||
|
||||
¡Hola a todos!
Recuerda que Value es una propiedad Variant y por alguna razón está interpretando el valor como cadena en lugar de número flotante. En la lista de observaciones coloca las expresiones DataSet.FieldByName (‘SUM’).ClassName y DataSet.FieldByName (‘SUM’).DataType. Eso ayudará a saber qué tipo de dato esta resultando para esa columna de la consulta, lo cual nos dará más pistas. Un abrazo sumado. Al González. |
#3
|
|||
|
|||
hola Al González
ya hice lo que me sugieres pero me muestra como resultado lo siguiente Cita:
Por favor tenme paciencia ¿Que más puedo hacer? |
#4
|
||||
|
||||
Allow function calls
¡Hola Paty! (supongo que ese es tu nombre)
Cuando agregues la observación, utiliza la opción Allow function calls para que se muestre el valor de las expresiones que introduces. Desde luego, también es necesario que el programa se encuentre detenido en un punto donde dichas expresiones sean válidas. Espero esto sea de utilidad, seguimos en contacto. Un abrazo depurando. Al González. |
#5
|
|||
|
|||
Sigue marcando lo mismo
Al González
¿Como lo supiste? bueno, ya hice lo que dijiste y el resultado fue el siguiente: Cita:
Código:
Select cast(sum(T.MONTO) as numero (12,2)) , e.nombre as e_nombre , e.id_empresa as id_estacion , c.nombre as c_Nombre , c.ID_CLIENTE , tc.NUMERO_TARJETA , tc.ID_TARJETA , co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO , t.CONSECUTIVO , t.ID_TICKET From CORTE CO, TICKET__RELACION_IA T, empresa e , cliente c , TARJETA_CLIENTE TC Where CO.ID_CORTE = T.ID_CORTE and t.id_empresa = e.ID_EMPRESA AND CO.ID_ESTACION = E.ID_EMPRESA and t.id_cliente = c.ID_CLIENTE AND T.ID_TARJETA = TC.ID_TARJETA Group by e.id_empresa, e.nombre, c.NOMBRE, c.ID_CLIENTE, tc.NUMERO_TARJETA, tc.ID_TARJETA, co.FECHA_HORA_INI, co.ID_CORTE, co.TURNO, t.CONSECUTIVO, t.ID_TICKET |
#6
|
||||
|
||||
¡Hola a todos!
Ah, el problema debe ser el tipo del campo TICKET__RELACION_IA.MONTO en la base de datos. Si ese campo es monetario, te sugiero que lo crees de tipo "Numeric (15, 4)" (numérico, precisión de 15, escala de 4); de esa manera no te dará problemas. Una observación: eso que llamas «casta» en realidad se conoce como molde de tipo o moldear. Cambiando de tema, veo que vives en Torreón. Tengo buenos recuerdos de cuando viví en aquella ciudad, especialmente del Paseo de La Rosita, Torreón Jardín y La Nive de Chepo. Lo único que no me gustaba era subirme a un taxi y que el conductor no supiera leer (me sucedió en 1997) . Por cierto, Contraveneno, un conocido y amigable participante de estos foros, también vive ahí. Un abrazo lagunero. Al González. |
#7
|
|||
|
|||
Si esta declarado numeric
hola
Volviendo al tema del hilo, la declaración de la tabla es la siguiente: Código:
RECREATE TABLE TICKET__RELACION_IA ( ID_TICKET INTEGER NOT NULL, ID_CLIENTE INTEGER, CVE_DESPACHADOR VARCHAR( 15) COLLATE NONE, POSICION INTEGER, CONSECUTIVO INTEGER, PRINCIPAL INTEGER, TIPO_VENTA VARCHAR( 15) COLLATE NONE, ESTADO VARCHAR( 45) COLLATE NONE, NUM_COPIAS SMALLINT, FECHA TIMESTAMP, HORA TIMESTAMP, CAPTURADOR VARCHAR( 25) COLLATE NONE, FECHA_CAPTURA TIMESTAMP, ID_TARJETA INTEGER, FECHA_HORA TIMESTAMP, ID_CORTE INTEGER, ODOMETRO NUMERIC( 12, 4), RUTA_FOTO_RESTRICCION VARCHAR( 300) COLLATE NONE, RUTA_FOTO_TICKET VARCHAR( 300) COLLATE NONE, RENDIMIENTO NUMERIC( 18, 6), MONTO NUMERIC( 18, 6), FP_ELECTRONICO NUMERIC( 18, 6), FP_TRADICIONAL NUMERIC( 18, 6), ID_RESTRICCION INTEGER, ID_FACTURA INTEGER, ID_TICKET_LOCAL INTEGER, ID_EMPRESA INTEGER, CONSTRAINT PK_TICKET__RELACION_IA PRIMARY KEY (ID_TICKET) ); el campo MONTO esta declarado como numerico, asi que sigo sin saber cual es le problema. Gracias por los saludos y por los conocimientos que compartes conmigo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Funcion de Que Retorna una Cadena | Abel Garcia | Firebird e Interbase | 4 | 23-07-2005 10:30:02 |
Problema: Un tipo LONGBLOB me regresa sólo 32,769 bytes | molarte | MySQL | 4 | 08-02-2005 19:19:59 |
SQLClientDataSet no regresa lo esperado | EITB | OOP | 2 | 27-09-2004 18:45:25 |
[Europa - Patentes de SW]: el peligro regresa ... | kinobi | Noticias | 16 | 19-05-2004 13:32:33 |
Buscar cadena dentro de otra cadena | doverzhoff | Varios | 4 | 27-01-2004 05:27:15 |
|