Open Business Intelligence

La red del Business Intelligence

Buenas noches, mi duda es la siguiente, si al momento de realizar una carga al a la tabla de hechos no tengo cargados valores para todos los hechos como lo podria solucionar?

Dada la siguiente sentencia para cada venta yo puedo tener o no uno o mas gasto_comer, entonces uso un LEFT JOIN, el tema es que cuando ejecuto la sentencia el monto_total y la cant_vendida se me multiplican por la cantidad de columnas gt.costo que tengo..
por ej: tengo 4 columnas en la tabla gt.costo y si el monto_total es 30000 se me multiplica por 4, osea 120000.

Que solucion le puedo dar? gracias

SELECT
ip.idProduccionNuevo AS id_produccion,
ic.idClientesNuevo AS id_clientes,
icu.idCultivosNuevo AS id_cultivos,
year(v.fecha)*10000+month(v.fecha)*100+day(v.fecha) AS id_tiempo,
sum(v.valor) AS monto_total,
sum(v.kg) AS cant_vendida,
sum(gt.costo) AS gastos_comer
FROM
ventas v
LEFT JOIN gastoscomeragri gt ON gt.idTipoVenta = v.idventa
JOIN ids_produccion ip ON ip.idproduccion = v.idProduccion
JOIN ids_clientes ic ON ic.idclientes = v.idCliente
JOIN produccion p ON p.idproduccion = v.idProduccion
JOIN cultivos cu ON cu.idCultivos = p.idCultivo
JOIN ids_cultivos icu ON icu.idCultivos = cu.idCultivos
GROUP BY
 v.fecha, ip.idProduccionNuevo, ic.idClientesNuevo, icu.idCultivosNuevo;

Visitas: 35

Responde a esto

Respuestas a esta discusión

Hola Guillermo,

 

Para tu caso, si no tengo el total por linea, sino que el total de la factura completa, al realizar el left join haria lo siguiente, luego de hacer el left join, realizaria en spoon un flujo que se encargue que para cada documento me diga cuantas lineas quedaron (factura 1 tienes 10 lineas, factura 2 tienes 4 lineas y asi), y luego los distribuiria linealmente tomando monto_total / cantidad de lineas, lo mismo haria para la cantidad vendida, idealmente seria poder contar con la cantidad y el monto por linea para tener una informacion mas real, porque no es lo mismo que vendiste de una factura de 30000, 20 del producto 1 y 5000 del producto 2 y 500 del producto 3, que vendiste 10000 de cada producto.

Lo otro que yo haria al no tener la informacion real por linea, no haria ese left join si no que mostraria la venta por factura.

Saludos

Responder a debate

RSS

Distintivo

Cargando…

© 2017   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio