-- Ventas por linea por cliente mes a mes

SET NAMES 'utf8';

SELECT
	LAST_DAY(dv.fecha) AS Mes,
	dv.id_vendedor AS Id_Asesor,
	vdr.nombre_vendedor AS Asesor,
	dv.id_cliente AS Id_Cliente,
	cs.nombre_cliente AS Cliente,
	dv.id_sucursal AS Sucursal,
	RIGHT(l.id_linea,2) AS Id_Linea,
	l.descripcion AS Linea,
	SUM(dvi.valor) AS Ventas_COP,
	ROUND(
		SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 4
	) AS Ventas_MT

FROM
	documento_ventas dv
	JOIN documento_ventas_has_item dvi
		ON ( dv.id_documento=dvi.id_documento 
			AND dv.id_sucursal=dvi.id_sucursal )
	JOIN item i
		USING ( id_item )
	JOIN cliente_has_sucursal cs
		ON ( dv.id_sucursal=cs.id_sucursal 
			AND dv.id_cliente=cs.id_cliente )
        LEFT JOIN linea l
		ON ( i.id_linea = l.id_linea )
	LEFT JOIN vendedor vdr
		ON ( dv.id_vendedor = vdr.id_vendedor )

WHERE (LEFT(dv.id_documento,2) = 'DV' OR
       LEFT(dv.id_documento,2) = 'EF' OR
       LEFT(dv.id_documento,1) = 'F')
      AND YEAR(dv.fecha) >= 2016

GROUP BY
	Mes, Id_Asesor, Id_Cliente, Sucursal, Id_Linea

ORDER BY
	Mes, Id_Asesor, Id_Cliente, Sucursal, Id_Linea
