MySQL - Calculos incorrectos en consultas MySQL

 
Vista:
Imágen de perfil de Raul D

Calculos incorrectos en consultas MySQL

Publicado por Raul D (1 intervención) el 10/02/2022 21:33:55
Buenas tardes,

Necesito de su apoyo para saber que tengo mal en una consulta donde al agrupar registros estos no suman correctamente los montos, ya revise por indice, por fecha entre otras cosas y persiste la falla.

Datos:
- La Base (Concentrado) consta de 16850765 registros.
- Su estructura es:
- Id int(11)
- año varchar(4)
- mes varchar(2)
- cuenta varchar(10)
- cliente varchar(10)
- tipo_cliente varchar(4)
- entidad varchar(5)
- centro_costos varchar(5)
- codigo_articulo varchar(20)
- cantidad int(11)
- total_bruto double
- total_neto double
- total_costo double


De esta tabla origen primero quito todos los registros que no me internesan y creo la Tabla "FactLinCP1:

CREATE TABLE FactLinCP1
SELECT * FROM Concentrado
WHERE cuenta <> 0 and entidad <> 17 and año > 2016;

Despues Neteo la Informacion Tabla FactLinCP: Donde lo que hago es un indice concatenando la cuenta, centro de costos y articulo, tambien concateno año y mes o los convierto en fecha y dejo la ultima fecha de cargo, de modo que se pueda sumar la cantidad, el total_bruto, el total_neto y el costo de aquellos registros que tengan la misma cuenta, centro de costos y codigo de articulo

CREATE TABLE FactLinCP
SELECT CONCAT(cuenta, "-", centro_costo, "-", codigo_articulo) as id, cuenta, centro_costo, codigo_articulo,
MAX(str_to_date((concat(01, "-", mes, "-", año)),'%d-%m-%Y')) as fecha, sum(cantidad) as cantidad,
round((sum(total_precio_b)),2) as total_precio_b, round((sum(total_precio_n)),2) as total_precio_n,
round((sum(total_costo)),2) as costo_estandar
FROM FactLinCP1
WHERE (str_to_date((concat(01, "-", mes, "-", año)),'%d-%m-%Y')) > “2018-05-01”
GROUP BY cuenta, centro_costo, codigo_articulo;


PROBLEMA: el problema resulta cuando veo que en algunos registros (no todos), donde detecto que el campo cantidad, precio bruto y costo estan en cero, pero si tienen informacion en precio_neto, no lo suma y por ello las diferencias, que de poquitas en poquitas suman mucho.

Lo curioso es que si genero estas consultas por 1 sola cuenta los resultados son correctos, pero si hago la misma consulta por un año ya no suma correctamente. Estos registros pueden tener cargos en varios meses por lo que no puedo hacer la consulta por mes.

¿Saben por que ocurre que no me sume correctamente dichos registros? Adjunto imagen.
Concentrado
FactLinCP
FactLinCP1
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