-- Numero de clientes distintos del ultimo trimestre de cada año
SELECT
	YEAR(dv.fecha) AS Ano,
	QUARTER(dv.fecha) AS Trim,
	MIN(dv.fecha) AS Fecha_desde,
	MAX(dv.fecha) AS Fecha_hasta,
        COUNT(DISTINCT dv.id_cliente) AS Clientes,
        SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
        SUM(dvi.valor) AS Valor

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
                ON ( dvi.id_item=i.id_item )
        JOIN cliente_has_sucursal cs
                ON ( dv.id_sucursal=cs.id_sucursal 
                        AND dv.id_cliente=cs.id_cliente )

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) >= 2017

GROUP BY
    Ano,Trim

ORDER BY
    Ano,Trim
