intranet-queries/2018-01-22-Clientes_para_ABC.sql

47 lines
1.3 KiB
SQL

-- Clientes para clasificacion ABC (comparacion pareto anual)
SET NAMES 'utf8';
SELECT
cl.id_cliente AS Nit,
cl.nombre_cliente AS Cliente,
cs.cupo AS Cupo,
(IF(cs.cupo>0,"Credito","Contado")) As TipoCliente,
v.nombre_vendedor AS Asesor_asignado,
cs.id_sucursal AS Sucursal_asesor,
SUM(dv.valor) AS ventas_cop,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS ventas_kg,
COUNT(dv.id_documento) AS numero_facturas
FROM
cliente cl
JOIN cliente_has_sucursal cs
USING (id_cliente)
LEFT JOIN documento_ventas dv
ON (dv.id_sucursal = cs.id_sucursal
AND dv.id_cliente = cs.id_cliente)
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 )
LEFT JOIN recaudo r
ON (r.id_cliente = cs.id_cliente
AND r.id_sucursal = cs.id_sucursal
AND r.id_documento = dv.id_documento)
LEFT JOIN vendedor v
ON (cs.id_vendedor = v.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) = 2015
GROUP BY
Nit