![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola, utilizo Firebird 1.5 y tengo un problema, cuando ejecuto la consulta:
Select ..., entrada_det.cantidad, (entrada_det.total/entrada_det.cantidad) as precio, entrada_det.total, ... from entrada_det inner ... me da un resultado erróneo: ...=... cantidad = 100 precio = 0,004 (!! ![]() total = 41.682 ... lo hice con un procedimiento almacenado (calculando el precio posteriormente) y funciona perfecto ... si alguien me puede tirar una pista de que puede estar pasando se los agradesco. |
#2
|
||||
|
||||
¿como que tipo de dato estan definidos tus campos?
__________________
|
#3
|
|||
|
|||
tipos de datos
cantidad es de tipo Numeric(10,3)
y total numeric(10,2) |
#4
|
|||
|
|||
aclaración
me olvidé aclarar que mi firebird es una version 1.5 Classic sobre Red Hat 9.
|
#5
|
||||
|
||||
Serán otros los valores, seguro que no es fallo de la división.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Eso me pasó a mi y lo comenté aqui. Esto lo soluciono aplicando una función al valor, normalmente unas UDF´s creadas por mi que son una para redondear un valor a un numero de decimales, ambos pasados como parametro, y otra para truncar valores. No se si es una forma muy ortodoxa, pero fué la única solución que encontre y por ahora me funciona perfectamente.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
#7
|
|||
|
|||
Hola foro,
pues me puse en la tarea de reconstruir el caso
y corri la consulta
y el resultado fue: CANTIDAD PRECIO TOTAL 100 0.41682 41.682 Casimiro Notevi debe tener razon, otros son tus datos o el valor almacenado en cantidad es diferente. Otra cosa que observe, es que una division tiene en la parte decimal del resultado la suma de los numeros de posiciones decimales de los operandos. En tu caso deberian aparecer en la parte decimal 5 digitos.
__________________
Luis Fernando Buelvas T. |
#8
|
|||
|
|||
voy a buscar
Voy a tratar de repetir la falla y se las envío, actualmente no la tengo a mano porque sustituí el código por uno que andubiera y listo.
aaaa.... antes de alterar el código probé en otro equipo (Windows con motor Firebird SS 2.0), y la falla no se dió (con la misma base). Gracias de nuevo por e interés que han demostrado, les envío los datos a la brevedad. ![]() |
#9
|
||||
|
||||
¿Habeis probado ejecutando la consulta con el execute statement? En mi caso solo daba problemas en las consulta dinamicas que se ejecutaban con la intrucción anterior.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
#10
|
|||
|
|||
solucion
Después que me dió ese error (y me dí cuenta dónde estaba fallando) mudé la consulta a un procedimiento almacenado y quedó solucionado.
Pero atención, no hice el cálculo dentro de la consulta .. Select .... (total/cantidad) as precio, ... sino que lo hice .. For Select total, cantidad, (sin el precio) ... into ... :LTOTAL, :LCANTIDAD do begin LPRECIO=:LTOTAL/:LCANTIDAD; suspend; end ... por supuesto que LPRECIO está dentro de los parámetros que se retornan. Bueno saludos a todos. ![]() |
#11
|
||||
|
||||
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
Resp
tengan cuidado cuando trbajan con numeric que se vana a encontar con unos resultados que los van a volver completamente loco. En este foro hay una refencia hacia un link de como se comporta firebird con los numericos traten de leerlas antes de trabajar con es tipo de datos.
Esto lo he dicho varias veces en el foro.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Division de un Campo en un select | dmagui | SQL | 1 | 04-01-2007 17:59:05 |
Error el división | fayala | Varios | 3 | 02-08-2005 01:58:48 |
division por cero | kalimero | Varios | 7 | 21-12-2004 16:24:28 |
Division grafica de Columnas | rruffino | Impresión | 3 | 20-12-2004 22:31:13 |
Módulo de una división en Interbase | Newbie | Firebird e Interbase | 1 | 06-11-2003 23:29:02 |
![]() |
|