Ver Mensaje Individual
  #1  
Antiguo 27-02-2025
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 291
Reputación: 21
afxe Va por buen camino
Otra vez fallos de redondeos.

Hola grupo. Tengo FB 3.0 y dialect 3.

Hago una consulta para sacar la suma por bases imponibles, la cuota y el total de una factura a partir de los detalles que la componen:

Código SQL [-]

SELECT A.CODIGO, D.PORC_IVA, 
                 SUM(D.IMPORTE_VENTA)                      AS BASE,
                 SUM(D.IMPORTE_VENTA) * D.PORC_IVA/100      AS CUOTA_1,
                 round( SUM(D.IMPORTE_VENTA) * D.PORC_IVA/100, 2)       AS CUOTA_2,
                 round (SUM(D.IMPORTE_VENTA) * D.PORC_IVA/100 + sum(importe_venta), 2)   AS Total_Factura
FROM CAB_VENTAS A LEFT JOIN DET_MOVIMIENTOS D ON A.TIPO_DOCUMENTO = D.TIPO_CABECERA AND A.CODIGO = D.COD_CABECERA
where a.codigo = 939006
GROUP BY A.CODIGO, D.PORC_IVA

Y este es el resultado:
Código:
CODIGO	PORC_IVA	       BASE	          CUOTA_1	        CUOTA_2	   TOTAL_FACTURA
939006	10.000000	174.55	         17.455000         	17.450000	      192.010000
Podéis observar que CUOTA_2 no hace correctamente el redondeo, debería dar 17.46. IMPORTE_VENTA es un Numeric(15,2) y he probado todas las maneras de hacer el ROUND y CAST, incluso cambiado los campos a Double Precision.

He buscado por el foro pero no he encontrado una solución a esto, y creo que no debe ser el único que lucha con los redondeos. El problema es que me genera gran cantidad de descuadres en contabilización y totalizaciones. ¿Una ayudita?
__________________
Amar al mundo apasionadamente.
Responder Con Cita