-- Ventas por línea por año por sucursal SELECT CONCAT(dvi.id_sucursal,DATE_FORMAT(MAX(dv.fecha),'%Y'),l.id_linea) AS Llave, dvi.id_sucursal AS Sucursal, DATE_FORMAT(MAX(dv.fecha),'%Y-01-01') AS Ano, l.id_linea AS Linea, l.descripcion AS Descripcion, SUM(dvi.valor) AS Valor, SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso, SUM(dvi.costo) AS Costo, SUM(dvi.valor-dvi.costo) AS Utilidad 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 AND dvi.id_sucursal=i.id_sucursal ) JOIN linea l ON ( l.id_linea = LEFT(i.id_linea,2) AND l.tipo = i.tipo ) WHERE LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]" AND NOT (i.tipo LIKE "5") AND NOT (dv.id_cliente LIKE "999") AND dv.fecha >= '2006-01-01' AND dv.fecha <= '2011-08-31' GROUP BY Sucursal, Linea, DATE_FORMAT(dv.fecha,'%Y-%m') ORDER BY Llave ASC