47 lines
1.3 KiB
SQL
47 lines
1.3 KiB
SQL
-- Clientes para clasificacion ABC
|
|
|
|
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 total_ventas,
|
|
COUNT(dv.id_documento) AS numero_facturas,
|
|
MAX(dv.fecha) AS fecha_ultima_factura,
|
|
SUM(r.valor) AS total_recaudos,
|
|
COUNT(r.id_documento) AS numero_recaudos,
|
|
AVG(mora) AS promedio_mora,
|
|
IFNULL(AVG(
|
|
IF(
|
|
PERIOD_DIFF(@PER,EXTRACT(YEAR_MONTH FROM r.fecha))>=3,
|
|
NULL,
|
|
IF(mora<0,0,mora)
|
|
)
|
|
),0) AS promedio_mora_ultimos_3meses,
|
|
MAX(mora) AS maxima_mora,
|
|
COUNT(DISTINCT(EXTRACT(YEAR_MONTH FROM dv.fecha))) AS Frecuencia_meses
|
|
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)
|
|
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
|
|
dv.fecha >= @INI
|
|
AND dv.fecha < @FIN
|
|
|
|
GROUP BY
|
|
Nit
|
|
|