SQL Server - Error de sumas totales

 
Vista:

Error de sumas totales

Publicado por Guillermo Rebaza (5 intervenciones) el 25/07/2007 16:41:32
Estimados colegas,

Estoy teniendo unos problemas en el SQL Server 2000 en cuanto a las sumas totales, a continuación paso a explicar que es lo que sucede. Tengo dos querys los cuales se diferenciar en que uno esta agrupado y el otro no digamos uno es un resumen y el otro es el detalle.

Lo que pasa es que cuando ejecuto los querys en el detalle me sale un dato digamos 55678.89 en la suma total y en el resumen me sale 55678.91, la diferencia siempre se da en los decimales y ustedes saben que los usuarios quieren ver identicamente sus resultados tanto en el detalle como en el resumen como es lógico no.

Mi pregunta es como puedo solucionar el problema de las sumas totales, tengo la version SQL Server 2000 en español con SP4, ¿podra ser por la version del sql server que esta en español o que puede ser?.

Les agradecería bastante si alguien me puede ayudar con este tema, porque ya tengo buen tiempo con este problema.

Muchas gracias a todos por su ayuda

Atentamente

Guillermo

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de sumas totales

Publicado por Isaias (3308 intervenciones) el 25/07/2007 17:58:44
Guillermo

¿Como estas SACANDO esos totales?
¿Que tipo de dato tienes en el detalle y cual en el resumen?

Creo que requiero de mas datos para dar una opinion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Guillermo Rebaza (5 intervenciones) el 26/07/2007 16:09:54
Muchas gracias estimado Isaias por tu apoyo.

Tengo varios campos pero te voy a dar los tipos de datos de los mas importantes
por ejemplo:
Comision --> Float
Gastos --> Float
Igv119, Igv019, --> Float
MontoCredito --> Float
Presupuesto --> Float

Estos son los campos con los cuales yo realizo los cálculos y todos tienes tipo de dato Float como lo vez ¿Será por el tipo de dato?

Ahora te paso una parte del query para que lo analizes.

Reporte de Detalles:
============================================================

Select DatosCredDesemb.NroCredito,
DatosCredDesemb.Presupuesto,
Cast(DatosCredDesemb.Comision/Igv119 As Decimal(10,2)) As Comision,
Cast((DatosCredDesemb.Comision + DatosCredDesemb.Gastos)/Igv119 As Decimal(10,2)) - Cast(DatosCredDesemb.Comision/Igv119 As Decimal(9,2)) As Gastos,
Cast((DatosCredDesemb.Comision + DatosCredDesemb.Gastos)/Igv119 As Decimal(10,2)) As ComiGastos,
Cast((DatosCredDesemb.Comision + DatosCredDesemb.Gastos)/Igv119*igv019 As Decimal(10,2)) As Igv,
DatosCredDesemb.MontoCredito As MontoCredito
FROM CLIENTE INNER JOIN SolicitudCredito ON CLIENTE.idcliente = SolicitudCredito.idcliente
INNER JOIN TipoCredito ON SolicitudCredito.TipoCredito = TipoCredito.idcredito
INNER JOIN Fuente ON TipoCredito.Fuente = Fuente.idfuente
INNER JOIN DatosCredDesemb ON SolicitudCredito.idsolicitud = DatosCredDesemb.idsolicitud
INNER JOIN Proyecto ON Fuente.Proyecto = Proyecto.identificador
INNER JOIN Empleado ON SolicitudCredito.idempleado = Empleado.Id_empleado
Where DatosCredDesemb.FechaDesembolso Is Not Null AND
DatosCredDesemb.Estado in ( '0','1','4' ) AND
DatosCredDesemb.NroCreditoPadre Is Null
Order By Cliente, NroCredito
=============================================================

Reporte Resumen Digamos Agrupado por una Fuente de Financiamiento.

=============================================================

SELECT Fuente.Descripcion As fuente_descripcion,
Count(DatosCredDesemb.NroCredito) As nrocreditos,
Cast(Sum(DatosCredDesemb.Presupuesto) As Decimal(10,2)) As presupuestototal,
Cast(Sum((DatosCredDesemb.Comision + DatosCredDesemb.Gastos)/igv119) As Decimal(10,1)) As compute_1,
Cast(Sum((DatosCredDesemb.Comision + DatosCredDesemb.Gastos)/igv119*igv019) As Decimal(10,2)) As I_G_V,
Cast(Sum(DatosCredDesemb.MontoCredito) As Decimal(10,2)) As montoatendido
FROM Fuente INNER JOIN TipoCredito ON Fuente.idfuente = TipoCredito.Fuente
INNER JOIN DatosCredDesemb ON TipoCredito.idcredito = DatosCredDesemb.TipoCredito
INNER JOIN Proyecto ON Fuente.Proyecto = Proyecto.identificador
Where (FechaDesembolso Between @fecini And @fecfin) And
(DatosCredDesemb.FechaDesembolso is not Null) And
(Proyecto.nombe = @Proyecto)
Group By Fuente.Descripcion

==============================================================

Estos son los dos querys que utilizo para sacar el detalle y el resumen.

Muchas gracias Isaias por tu apoyo y a todo el foro en general.

Atentamente:

Guillermo

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Isaias (3308 intervenciones) el 26/07/2007 19:31:36
Creo que el problema anda en los CAST, hagamos una prueba.

Cambia:

Cast(Sum(DatosCredDesemb.Presupuesto) As Decimal(10,2))

Por:

Sum(CAST(DatosCredDesemb.Presupuesto As Decimal(10,2)))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Guillermo Rebaza (5 intervenciones) el 26/07/2007 22:16:36
Muchas gracias isaias por tu respuesta, voy a probar lo que me indicas y expongo que paso; pero por lo que me indicas debo primero hacer la conversión a dos decimales de todos los datos que uso y luego ya sumo no, teniendo la certeza de que son 2 decimales??.

Voy a realizar lo que me indicas y expongo cual fue el resultado.

Muchas gracias

Atentamente

Guillermo

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Isaias (3308 intervenciones) el 26/07/2007 23:49:10
Creo que hay que tomar en cuenta el orden de las funciones, si primero SUMAS y luego conviertes, no te dara el mismo resultado, si lo haces de forma contraria, primero CONVIERTES y luego SUMAS.

En algun lado se estan truncando los decimales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Guillermo Rebaza (5 intervenciones) el 28/07/2007 04:05:09
Hola Amigos del foro, el resultado de las sumas totales se arreglo con el orden de las funciones coloque primero el Sum y luego el cast como por ejemplo:

Sum(Cast(DatosCredDesemb.Presupuesto As Decimal(10,2))) As presupuestototal

Con eso se soluciono mi problema.

Muchas gracias Isaias y a todos los del foro, espero tambien le sirva a alguien.

Atentamente:

Guillermo Rebaza

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de sumas totales

Publicado por Isaias (3308 intervenciones) el 30/07/2007 22:19:38
Gracias por compartir la solucion para el foro.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar