Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2005
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Talking ¿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)" ?
Responder Con Cita
  #2  
Antiguo 02-05-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
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
__________________
[Crandel]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


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


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
Copyright 1996-2007 Club Delphi