¿Y cuánto valen
nivel_venta.precio_nivel_venta y
lista_precio.descuento en ese momento dado?
Un ejemplo:
Código sql:
Ver originalSELECT
(1500 *5.5*((100-0)/100)) Prueba1_A,
round((1500 *5.5*((100-0)/100)),-2) Prueba1_B,
(1405 *5.5*((100-0)/100)) Prueba2_A,
round((1405 *5.5*((100-0)/100)),-2) Prueba2_B;
El resultado es:
Código sql:
Ver originalmysql> SELECT
-> (1500 *5.5*((100-0)/100)) Prueba1_A,
-> round((1500 *5.5*((100-0)/100)),-2) Prueba1_B,
-> (1405 *5.5*((100-0)/100)) Prueba2_A,
-> round((1405 *5.5*((100-0)/100)),-2) Prueba2_B;
+------------+-----------+------------+-----------+
| Prueba1_A | Prueba1_B | Prueba2_A | Prueba2_B |
+------------+-----------+------------+-----------+
| 8250.00000 | 8300 | 7727.50000 | 7700 |
+------------+-----------+------------+-----------+
1 ROW IN SET (0.00 sec)
Los redondeos dan perfecto... ¿Cómo es posible que te falle? depende del valor que interviene en cada parte, y es posible que dependa de la versiónde MySQL, ya que algunas releases tuvieron bugs.
¿Cuál usas tu?
Verifica con una prueba de escritorio.