Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ¿sum(xxx)-sum(yyy) con 15 decimales de descuadre? (https://www.clubdelphi.com/foros/showthread.php?t=20958)

ciscu 02-05-2005 17:36:23

¿sum(xxx)-sum(yyy) con 15 decimales de descuadre?
 
Hola a todos!!!

Me pasa una cosa sorprendente, y a la vez inquietante. Tengo una query con el siguiente SQL:

Código:

SELECT N_Asiento, SUM(Debe - Haber) as SaldoNeto
FROM Cuentas
GROUP BY N_Asiento

lo que parece una consulta inofensiva, se me ha convertido una pesadilla.
Una vez ejecutada, los valores de "SaldoNeto" me aparecen con 15 ó más decimales, cosa que tendría que ser 0, ya que se trata de asientos contables cuadrados.

Le pasé la función Trunc() a todos los valores de los asientos y aún me aparecen los 15 decimales.

¿Alguna sugerencia?

Gracias anticipadas!!!

PD: por cierto, es lo mismo "sum(Debe-Haber)" que "sum(Debe)-sum(Haber)" ?

Crandel 02-05-2005 19:44:11

Hola ciscu,


Cita:

los valores de "SaldoNeto" me aparecen con 15 ó más decimales
el hecho que te aparesca los numeros con decimales no es sorprendente, todo depende del tipo de dato que hayas definido para DEBE y HABER, que seguramente los definiste como FLOAT o DOUBLE PRECISION, como decis que son 15 decimales debe ser seguramente DOUBLE PRECISION.


Cita:

Le pasé la función Trunc() a todos los valores de los asientos y aún me aparecen los 15 decimales.
La funcion Trunc() te trunca la parte decimal pero eso no implica que te convierta de tipo de dato.


Cita:

PD: por cierto, es lo mismo "sum(Debe-Haber)" que "sum(Debe)-sum(Haber)" ?
matematicamente es lo mismo, pero computacionalmente calculo que debe ser mas rapido hacer "sum(Debe-Haber)" dato que al encontrar un registro automaticamente calcula la diferencia y la almacena, mientras de la otra forma va sumando cada columna y al final hace la resta. Aunque la diferencia no debe ser muy grande.

Suerte


La franja horaria es GMT +2. Ahora son las 14:06:06.

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