[ADD] Queries from intranet server

This commit is contained in:
Área de TI 2023-07-06 13:23:32 -05:00
parent 2472d14dc0
commit 9a2c08a825
171 changed files with 6149 additions and 0 deletions

View File

@ -0,0 +1,13 @@
SELECT c.id_cliente, c.nombre_cliente, 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 cliente c ON ( c.id_cliente=dv.id_cliente )
JOIN cliente_has_sucursal cs ON ( c.id_cliente=cs.id_cliente AND
cs.id_sucursal=dv.id_sucursal )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = YEAR('2008-01-01')
GROUP BY c.id_cliente
ORDER BY c.nombre_cliente ASC

16
2008-12-24cartera.sql Normal file
View File

@ -0,0 +1,16 @@
SELECT c.id_cliente AS NIT, cl.nombre_cliente AS cliente,
cs.direccion AS Direccion, z.descripcion AS Ciudad, cs.telefono AS Telefono,
cs.nombre_contacto AS Contacto,
SUM( c.valor ) AS Cartera_Actual, cs.cupo AS Cupo_Actual
FROM cartera c
JOIN cliente_has_sucursal cs
ON ( c.id_cliente = cs.id_cliente AND c.id_sucursal = cs.id_sucursal )
JOIN zona z ON ( cs.ciudad = z.id_zona )
JOIN cliente cl
ON ( cl.id_cliente = cs.id_cliente AND cl.id_cliente = c.id_cliente )
WHERE c.valor >0
GROUP BY c.id_cliente
HAVING (
SUM( c.valor ) >=3000000
)
ORDER BY `cl`.`nombre_cliente` ASC

21
2009-03-23_compras.sql Normal file
View File

@ -0,0 +1,21 @@
SELECT '1001' AS 'formato','5007' AS 'concepto',nit,proveedor,sum( movimiento )
FROM compras
WHERE
(
codCuenta = "14350101"
AND
tipo REGEXP "([12358]V|AP|DG|FP|FT|CC)"
)
OR (
codCuenta = "14350102"
AND
tipo REGEXP "(AP|DG|FP|FT)"
)
OR (
codCuenta = "14350201"
AND
tipo REGEXP "(CC)"
)
AND (length(nit) > 3)
AND nit NOT LIKE "444444%"
GROUP BY nit

1
2010-10-20-items.sql Normal file
View File

@ -0,0 +1 @@
SELECT * FROM `item` WHERE `tipo` LIKE '1';

9
2010-10-22_vts.sql Normal file
View File

@ -0,0 +1,9 @@
SELECT dv.id_sucursal AS suc, dvi.id_item AS item,
SUM(dvi.cantidad * (IF(dvi.valor>0,1,-1))) AS cantidad,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS peso,
SUM(dvi.valor) AS valor, SUM(dvi.costo) AS costo
FROM `documento_ventas_has_item` dvi
JOIN documento_ventas dv USING ( id_documento, id_sucursal )
JOIN item i USING ( id_item, id_sucursal )
where fecha like "2010-0%"
group by dvi.id_sucursal, dvi.id_item ;

View File

@ -0,0 +1,6 @@
SELECT id_item AS item, id_bodega AS bodega, id_sucursal AS suc,
cantidad AS cantidad, costo_unidad AS costo_un,
valor_unidad AS valor
FROM `existencia_historico`
WHERE `fecha` = '2010-09-30'
ORDER BY suc, bodega, item

View File

@ -0,0 +1,42 @@
-- Clientes por sucursal por año sin lineas
SELECT c.id_cliente AS Nit,
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Sucursal,
c.nombre_cliente AS Cliente,
c.id_vendedor AS CodVendedor,
c.telefono AS Telefono,
c.direccion AS Direccion,
z.descripcion AS Ciudad,
se.id_sector AS CodSector,
se.descripcion AS Sector,
sse.id_sector AS CodSubsector,
sse.descripcion AS Subsector,
SUM(dvi.valor) AS Valor,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso
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 cliente_has_sucursal c
ON ( dv.id_cliente=c.id_cliente AND dv.id_sucursal=c.id_sucursal )
JOIN sucursal su
ON ( su.id_sucursal=dv.id_sucursal )
JOIN vendedor v
ON ( v.id_vendedor=dv.id_vendedor AND dv.id_sucursal=v.id_sucursal )
JOIN sector se
ON ( se.id_sector=LEFT(c.id_sector,2) )
JOIN subsector sse
ON ( sse.id_sector=c.id_sector )
JOIN zona z
ON ( c.id_zona = z.id_zona )
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 Nit, Sucursal, Ano

View File

@ -0,0 +1,35 @@
-- 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

View File

@ -0,0 +1,27 @@
-- Documentos por año con recaudo
SELECT dv.id_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
fp.formapago AS Payment
FROM
documento_ventas_has_item dvi
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,1) = "F"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
GROUP BY Branch_Office, Invoice_No

View File

@ -0,0 +1,34 @@
-- Documentos por año con recaudo
SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
rec.fecha_vencimiento AS Invoice_Due_Date,
MAX(rec.fecha) AS Payment_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency
FROM
documento_ventas_has_item dvi
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN recaudo rec
ON ( dv.id_documento = rec.id_documento_cruce AND dv.id_sucursal = rec.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) = 2011
AND (rec.id_documento <> rec.id_documento_cruce)
AND LEFT(dv.id_documento,1) = "F"
AND fp.formapago = "Credito"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
GROUP BY Branch_Office, Invoice_No

33
2011-10-19-ventas.sql Normal file
View File

@ -0,0 +1,33 @@
-- Documentos de venta
SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
cs.direccion AS Address,
CONCAT_WS(', ',z.nombre_ciudad,z.nombre_depto) AS City,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
fp.descripcion AS Payment_conditions,
fp.formapago AS Sale_conditions
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
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 cliente_has_sucursal cs
ON ( dv.id_sucursal = cs.id_sucursal AND dv.id_cliente = cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
JOIN view_ciudades AS z
ON (cs.ciudad = z.id_ciudad)
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
GROUP BY Branch_Office, Invoice_No

View File

@ -0,0 +1,38 @@
-- Documentos de venta que han sido cruzados con uno o más recaudos
-- Se detalla el documento recaudo y el valor de recaudo
SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
rec.fecha_vencimiento AS Invoice_Due_Date,
MAX(rec.fecha) AS Payment_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
rec.id_documento AS Payment_Doc,
SUM(rec.valor) / COUNT(dvi.id_item) AS Payed_value,
MAX(rec.valor) AS Payed_value_confirmation
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN recaudo rec
ON ( dv.id_documento = rec.id_documento_cruce AND dv.id_sucursal = rec.id_sucursal )
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
GROUP BY
Branch_Office, Invoice_No, Payment_Doc
HAVING
Payment_Doc <> Invoice_No

View File

@ -0,0 +1,38 @@
-- Documentos de venta que han sido cruzados con uno o más recaudos
-- No se detalla el documento recaudo
-- La fecha de pago debería coincidir con la fecha del último pago
SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
rec.fecha_vencimiento AS Invoice_Due_Date,
MAX(rec.fecha) AS Payment_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
rec.id_documento AS Payment_Doc,
SUM(rec.valor) / COUNT(dvi.id_item) AS Payed_value,
MAX(rec.valor) AS Payed_value_confirmation
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN recaudo rec
ON ( dv.id_documento = rec.id_documento_cruce AND dv.id_sucursal = rec.id_sucursal )
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
AND (rec.id_documento <> rec.id_documento_cruce)
GROUP BY
Branch_Office, Invoice_No

View File

@ -0,0 +1,13 @@
-- Documentos de venta
SELECT
vts.*,
rec.Invoice_Due_Date,
rec.Payment_Date
FROM
view_ventas vts
LEFT JOIN view_ventas_con_recaudo rec
USING (Branch_Office, Invoice_No)

View File

@ -0,0 +1,41 @@
-- Documentos de venta que han sido cruzados con uno o más recaudos
-- Se detalla el documento recaudo y el valor de recaudo
CREATE
ALGORITHM = TEMPTABLE
VIEW view_documentos_recaudo
AS SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
rec.fecha_vencimiento AS Invoice_Due_Date,
MAX(rec.fecha) AS Payment_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
rec.id_documento AS Payment_Doc,
SUM(rec.valor) / COUNT(dvi.id_item) AS Payed_value,
MAX(rec.valor) AS Payed_value_confirmation
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN recaudo rec
ON ( dv.id_documento = rec.id_documento_cruce AND dv.id_sucursal = rec.id_sucursal )
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
GROUP BY
Branch_Office, Invoice_No, Payment_Doc
HAVING
Payment_Doc <> Invoice_No

View File

@ -0,0 +1,32 @@
-- Documentos de venta
CREATE
ALGORITHM = TEMPTABLE
VIEW view_ventas
AS SELECT suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
fp.descripcion AS Payment_conditions,
fp.formapago AS Sale_conditions
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
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 cliente_has_sucursal cs
ON ( dv.id_sucursal = cs.id_sucursal AND dv.id_cliente = cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
GROUP BY Branch_Office, Invoice_No

View File

@ -0,0 +1,42 @@
-- Documentos de venta que han sido cruzados con uno o más recaudos
-- No se detalla el documento recaudo
-- La fecha de pago debería coincidir con la fecha del último pago
CREATE
ALGORITHM = TEMPTABLE
VIEW view_ventas_con_recaudo
AS SELECT
suc.nombre_sucursal AS Branch_Office,
dv.id_documento AS Invoice_No,
dv.fecha AS Invoice_Date,
rec.fecha_vencimiento AS Invoice_Due_Date,
MAX(rec.fecha) AS Payment_Date,
cs.id_cliente AS ID_Customer,
cs.nombre_cliente AS Customer_Name,
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))) AS Invoice_qty_Kg,
SUM(dvi.valor) AS Amount,
"COP" AS Currency,
rec.id_documento AS Payment_Doc,
SUM(rec.valor) / COUNT(dvi.id_item) AS Payed_value,
MAX(rec.valor) AS Payed_value_confirmation
FROM
documento_ventas_has_item dvi
JOIN documento_ventas dv
ON ( dv.id_documento=dvi.id_documento AND dv.id_sucursal=dvi.id_sucursal )
JOIN recaudo rec
ON ( dv.id_documento = rec.id_documento_cruce AND dv.id_sucursal = rec.id_sucursal )
JOIN item i
ON ( dvi.id_item=i.id_item AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN forma_pago fp
ON ( dv.id_formapago = fp.id_formapago AND dv.id_sucursal = fp.id_sucursal )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
AND (rec.id_documento <> rec.id_documento_cruce)
GROUP BY
Branch_Office, Invoice_No

21
2011-10-28-clientes.sql Normal file
View File

@ -0,0 +1,21 @@
-- Clientes ha quienes se les ha vendido desde 2008
SELECT suc.nombre_sucursal AS Branch_Office,
cs.id_cliente AS ID_Customer,
cs.nombre_contacto AS Customer_Contact,
cs.nombre_cliente AS Customer_Name,
cs.direccion AS Address,
CONCAT_WS(', ',z.nombre_ciudad,z.nombre_depto) AS City
FROM
documento_ventas dv
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal = cs.id_sucursal AND dv.id_cliente = cs.id_cliente )
JOIN sucursal suc
ON ( dv.id_sucursal = suc.id_sucursal )
JOIN view_ciudades AS z
ON (cs.ciudad = z.id_ciudad )
WHERE
YEAR(dv.fecha) >= 2008
AND LEFT(dv.id_documento,2) RLIKE 'F|D[^0-9MP]'
AND NOT (dv.id_cliente LIKE "999")
GROUP BY Branch_Office, ID_Customer

View File

@ -0,0 +1,32 @@
-- Ventas por tipo de documento por cliente con sector
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
LEFT(dv.id_documento,2) AS TipoDocumento,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
LEFT JOIN sector se
ON ( se.id_sector = LEFT(cs.id_sector,2) )
LEFT JOIN subsector sbse
ON ( sbse.id_sector = cs.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
GROUP BY
Suc,Nit,TipoDocumento

View File

@ -0,0 +1,38 @@
-- Ventas por documento por cliente con sector y tipo de documento
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
IF(LEFT(dv.id_documento,1)="F","Factura",IF(LEFT(dv.id_documento,1)="D","Devolucion",IF(LEFT(dv.id_documento,1)="T","Traslado","Desconocido"))) AS ClaseDocumento,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
GROUP BY
Suc,Nit,Documento
ORDER BY
Valor DESC

View File

@ -0,0 +1,7 @@
CREATE ALGORITHM = TEMPTABLE VIEW `solosector` (
id_sector,
descripcion,
nivel
) AS SELECT *
FROM `sector`
WHERE nivel =1

View File

@ -0,0 +1,26 @@
-- Existencia histórica por línea por sucursal (costo y Kg)
SELECT
e.fecha AS Mes,
e.id_sucursal AS Sucursal,
l.id_linea AS Linea,
l.descripcion AS Descripcion,
SUM((e.cantidad)*i.peso) AS Peso,
SUM((e.cantidad)*e.costo_unidad) AS Costo
FROM
existencia_historico e
JOIN item i
ON ( i.id_item=e.id_item AND i.id_sucursal=e.id_sucursal )
JOIN linea l
ON ( l.id_linea = left(i.id_linea,2) AND l.tipo=i.tipo )
WHERE
(e.fecha = LAST_DAY(e.fecha))
AND (YEAR(e.fecha) = 2012)
GROUP BY
Sucursal,Linea,Mes
ORDER BY
Mes,Sucursal,Linea

View File

@ -0,0 +1,29 @@
-- Ventas por mes, sucursal y linea
SELECT
DATE_FORMAT(dv.fecha,"%Y-%m") AS Mes,
dvi.id_sucursal AS Sucursal,
l.id_linea AS Linea,
l.descripcion AS Descripcion,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) As Peso,
SUM(dvi.valor) AS Valor,
SUM(dvi.costo) AS Costo
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 YEAR(dv.fecha)=2011
GROUP BY
Sucursal,Linea,Mes
ORDER BY
Sucursal,Linea,Mes

View File

@ -0,0 +1,43 @@
-- Ventas por documento por cliente por familia con sector
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) AS Mes,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Documento,Familia
ORDER BY
Suc,Nit,Documento,Familia

View File

@ -0,0 +1,42 @@
-- Ventas por cliente por familia con sector
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
MONTH(dv.fecha) AS Mes,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Mes,Familia
ORDER BY
Suc,Nit,Mes,Familia

View File

@ -0,0 +1,50 @@
-- Ventas por cliente por familia con sector
-- (Agregar nombre de vendedor y líneas)
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) AS Mes,
l.id_linea AS CodLinea,
l.descripcion AS Linea,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Mes,CodLinea,CodVendedor
ORDER BY
Suc,Nit,Mes,CodLinea,CodVendedor

View File

@ -0,0 +1,45 @@
-- Ventas por documento por cliente por familia con sector
-- (Agregar líneas por factura)
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) AS Mes,
l.id_linea AS CodLinea,
l.descripcion AS Linea,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Documento,Linea
ORDER BY
Suc,Nit,Documento,Linea

View File

@ -0,0 +1,50 @@
-- Ventas por documento por cliente por familia con sector
-- (Agregar líneas por factura)
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
l.id_linea AS CodLinea,
l.descripcion AS Linea,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Documento,CodLinea,CodVendedor
ORDER BY
Suc,Nit,Documento,CodLinea,CodVendedor

View File

@ -0,0 +1,50 @@
-- Ventas por documento por cliente por familia con sector
-- (Agregar líneas por factura)
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
l.id_linea AS CodLinea,
l.descripcion AS Linea,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2011
AND l.tipo = 1
GROUP BY
Suc,Nit,Documento,CodLinea,CodVendedor
ORDER BY
Suc,Nit,Documento,CodLinea,CodVendedor

View File

@ -0,0 +1,51 @@
-- Ventas mensuales por linea por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
l.id_linea_analisis AS CodLinea1,
l.linea_analisis AS Linea1,
l.id_linea AS CodLinea2,
l.descripcion AS Linea2,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 )
LEFT JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2011
GROUP BY
Suc,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor
ORDER BY
Suc,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor

View File

@ -0,0 +1,53 @@
-- Ventas mensuales por linea por documento por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
l.familia AS Familia,
l.id_linea_analisis AS CodLinea1,
l.linea_analisis AS Linea1,
l.id_linea AS CodLinea2,
l.descripcion AS Linea2,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 )
LEFT JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2011
GROUP BY
Suc,Nit,Documento,CodLinea1,CodLinea2,CodVendedor
ORDER BY
Suc,Nit,Documento,CodLinea1,CodLinea2,CodVendedor

View File

@ -0,0 +1,43 @@
-- Clientes por sucursal por año sin lineas
SELECT c.id_cliente AS Nit,
dv.id_sucursal AS Sucursal,
c.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
c.telefono AS Telefono,
c.direccion AS Direccion,
z.descripcion AS Ciudad,
se.id_sector AS CodSector,
se.descripcion AS Sector,
sse.id_sector AS CodSubsector,
sse.descripcion AS Subsector,
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 cliente_has_sucursal c
ON ( dv.id_cliente=c.id_cliente
AND dv.id_sucursal=c.id_sucursal )
JOIN sucursal su
ON ( su.id_sucursal=dv.id_sucursal )
JOIN vendedor vdr
ON ( vdr.id_vendedor=dv.id_vendedor
AND dv.id_sucursal=vdr.id_sucursal )
JOIN sector se
ON ( se.id_sector=LEFT(c.id_sector,2) )
JOIN subsector sse
ON ( sse.id_sector=c.id_sector )
JOIN zona z
ON ( c.id_zona = z.id_zona )
WHERE LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND NOT (dv.id_cliente LIKE "999")
AND dv.fecha >= '2011-01-01'
AND dv.fecha <= '2012-12-31'
GROUP BY Sucursal, Cliente
HAVING Valor > 900000

View File

@ -0,0 +1,34 @@
SELECT
com.id_sucursal AS suc,
com.id_vendedor AS cod_vendedor,
vdr.nombre_vendedor AS nombre_vendedor,
vt.id_tipovendedor AS tipo_vdr,
com.id_documento AS documento,
com.id_documento_cruce AS documento_cruce,
com.id_item AS cod_item,
i.descripcion AS item,
l.descripcion AS linea,
lc.descripcion AS linea_comision,
com.periodo AS periodo,
com.factor_prorrateo AS factor_prorrateo,
com.factor_comision AS comision_cop_por_kg,
mo.descripcion AS rango_mora,
com.cantidad AS cantidad,
com.peso_un AS peso_un,
com.valor_comision AS comision
FROM
valor_comision_recaudo_kg com
LEFT JOIN vendedor vdr
USING (id_vendedor,id_sucursal)
LEFT JOIN vendedor_has_tipovendedor vt
USING (id_vendedor,id_sucursal)
LEFT JOIN item i
USING (id_sucursal,id_item)
LEFT JOIN linea l
ON (i.tipo = l.tipo AND LEFT(i.id_linea,2) = l.id_linea)
LEFT JOIN linea_has_linea_comision lhc
ON (l.id_linea=lhc.id_linea)
LEFT JOIN linea_comision lc
USING (id_linea_comision)
LEFT JOIN tipo_mora mo
USING (id_rangomora)

View File

@ -0,0 +1,38 @@
-- Comisiones mensuales de acuerdo a recaudos sobre ventas en Kg
SELECT
com.id_sucursal AS suc,
com.id_vendedor AS cod_vendedor,
vdr.nombre_vendedor AS nombre_vendedor,
vt.id_tipovendedor AS tipo_vdr,
com.id_documento AS documento,
com.id_documento_cruce AS documento_cruce,
com.id_item AS cod_item,
i.descripcion AS item,
l.descripcion AS linea,
lc.descripcion AS linea_comision,
com.periodo AS periodo,
com.factor_prorrateo AS factor_prorrateo,
com.factor_comision AS comision_cop_por_kg,
mo.descripcion AS rango_mora,
com.cantidad AS cantidad,
com.peso_un AS peso_un,
com.valor_comision AS comision
FROM
valor_comision_recaudo_kg com
LEFT JOIN vendedor vdr
USING (id_vendedor,id_sucursal)
LEFT JOIN vendedor_has_tipovendedor vt
USING (id_vendedor,id_sucursal)
LEFT JOIN item i
USING (id_sucursal,id_item)
LEFT JOIN linea l
ON (i.tipo = l.tipo AND LEFT(i.id_linea,2) = l.id_linea)
LEFT JOIN linea_has_linea_comision lhc
ON (l.id_linea=lhc.id_linea)
LEFT JOIN linea_comision lc
USING (id_linea_comision)
LEFT JOIN tipo_mora mo
USING (id_rangomora)
WHERE
EXTRACT(YEAR_MONTH FROM com.periodo) = 201204

View File

@ -0,0 +1,35 @@
-- Devoluciones (documento) por cliente por sucursal
-- @jtorres: devoluciones (DV) realizadas a nivel nacional 2011-09 a 2012-03.
-- Cada una debe tener el número de DV, Tercero, Fecha, Valor y Sucursal.
-- Ademas facturas
SELECT
dv.id_sucursal AS Suc,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
dv.fecha AS Fecha,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
WHERE
NOT (dv.id_cliente LIKE "999")
AND dv.fecha >= "2011-09-01"
AND dv.fecha <= "2012-04-30"
GROUP BY
Suc,Nit,Documento
ORDER BY
Suc,Nit,Documento

View File

@ -0,0 +1,27 @@
-- Gastos por tercero por cuenta
-- @cmunoz: cuentas de gastos de administracion y ventas en donde pueda ver
-- Sucursal, meses de 2011-01 a 2012-04, tercero, valor
SELECT
mov.id_sucursal AS suc,
mov.mes AS mes,
mov.id_cuenta AS id_cuenta,
cta.descripcion AS cuenta,
mov.id_cliente AS id_tercero,
cli.nombre_cliente AS tercero,
SUM(mov.valor) AS valor
FROM
movimiento_documento_cuenta mov
LEFT JOIN cuenta cta USING (id_cuenta,id_sucursal)
LEFT JOIN cliente cli USING (id_cliente)
WHERE
(id_cuenta LIKE '5%')
AND (mes > 201100)
GROUP BY
suc,mes,id_cuenta, id_tercero
ORDER BY
suc,mes,id_cuenta, id_tercero

View File

@ -0,0 +1,44 @@
SELECT
'sector_subfamilia_vendedor' AS Nivel,
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
lhs.subfamilia AS Subfamilia,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN linea l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia lhs
ON (l.id_linea = lhs.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201205
GROUP BY
Suc,CodVendedor,Subfamilia,Sector
ORDER BY
Suc,CodVendedor,Subfamilia,Sector

View File

@ -0,0 +1,42 @@
SELECT
'subfamilia_sucursal' AS Nivel,
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
lhs.subfamilia AS Subfamilia,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN linea l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia lhs
ON (l.id_linea = lhs.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201205
GROUP BY
Suc,Subfamilia,Sector
ORDER BY
Suc,Subfamilia,Sector

View File

@ -0,0 +1,43 @@
SELECT
'subfamilia_vendedor' AS Nivel,
dv.id_sucursal AS Suc,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
lhs.subfamilia AS Subfamilia,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN linea l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia lhs
ON (l.id_linea = lhs.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201205
GROUP BY
Suc,CodVendedor,Subfamilia
ORDER BY
Suc,CodVendedor,Subfamilia

View File

@ -0,0 +1,40 @@
SELECT
'sucursal' AS Nivel,
dv.id_sucursal AS Suc,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN linea l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia lhs
ON (l.id_linea = lhs.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201205
GROUP BY
Suc
ORDER BY
Suc

View File

@ -0,0 +1,42 @@
SELECT
'vendedor' AS Nivel,
dv.id_sucursal AS Suc,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN linea l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia lhs
ON (l.id_linea = lhs.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201205
GROUP BY
Suc,CodVendedor
ORDER BY
Suc,CodVendedor

View File

@ -0,0 +1,49 @@
-- Copia de la consulta en agofer_comisiones.pl
SELECT
com.id_sucursal AS suc,
com.id_vendedor AS cod_vendedor,
vdr.nombre_vendedor AS vendedor,
c.id_cliente AS cod_cliente,
c.nombre_cliente AS cliente,
sec.id_sector AS cod_sector,
sec.descripcion AS sector,
vt.id_tipovendedor AS tipo_vdr,
com.id_documento AS documento,
com.id_documento_cruce AS documento_cruce,
com.id_item AS cod_item,
i.descripcion AS item,
l.descripcion AS linea,
lc.descripcion AS linea_comision,
com.periodo AS periodo,
com.factor_prorrateo AS factor_prorrateo,
com.factor_comision AS comision_cop_por_kg,
mo.descripcion AS rango_mora,
com.cantidad AS cantidad,
com.peso_un AS peso_un,
com.valor_comision AS comision
FROM
valor_comision_recaudo_kg com
LEFT JOIN vendedor vdr
USING (id_vendedor,id_sucursal)
LEFT JOIN vendedor_has_tipovendedor vt
USING (id_vendedor,id_sucursal)
LEFT JOIN item i
USING (id_sucursal,id_item)
LEFT JOIN linea l
ON (i.tipo = l.tipo AND LEFT(i.id_linea,2) = l.id_linea)
LEFT JOIN linea_has_linea_comision lhc
ON (l.id_linea=lhc.id_linea)
LEFT JOIN linea_comision lc
USING (id_linea_comision)
LEFT JOIN tipo_mora mo
USING (id_rangomora)
LEFT JOIN recaudo doc
USING (id_sucursal,id_documento,id_documento_cruce)
LEFT JOIN cliente c
USING (id_cliente)
LEFT JOIN sector sec
ON (LEFT(c.id_sector,2)=sec.id_sector)
WHERE
EXTRACT(YEAR_MONTH FROM com.periodo) = 201205

View File

@ -0,0 +1,36 @@
-- Ventas por sucursal, sector, familia, mes
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
MONTH(dv.fecha) AS Mes,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 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 solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) = 2011
AND l.tipo = 1
GROUP BY
Suc,Sector,Familia,Mes
ORDER BY
Suc,Sector,Familia,Mes

View File

@ -0,0 +1,52 @@
-- Ventas mensuales por linea por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
-- Excluye traslados
SELECT
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2010)*12) AS ConsecutivoMes,
l.id_linea_analisis AS CodLinea1,
l.linea_analisis AS Linea1,
l.id_linea AS CodLinea2,
l.descripcion AS Linea2,
l.familia AS Familia,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) = 2010
GROUP BY
Suc,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor
ORDER BY
Suc,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor

View File

@ -0,0 +1,29 @@
-- Ventas por documento con cliente, ciudad y sucursal
SELECT
z.id_zona, z.descripcion, SUM(dvi.valor) AS valor, SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS peso, SUM(dvi.valor-dvi.costo)
dv.id_sucursal AS Suc,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
IF(LEFT(dv.id_documento,1)="F","Factura",IF(LEFT(dv.id_documento,1)="D","Devolucion",IF(LEFT(dv.id_documento,1)="T","Traslado","Desconocido"))) AS ClaseDocumento,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS Peso,
SUM(dvi.valor) AS Valor,
SUM(dvi.valor-dvi.costo) AS Utilidad
ciu.nombre_ciudad AS Ciudad,
ciu.nombre_depto AS Departamento
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 cliente_has_sucursal cs ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente ) JOIN zona z ON ( z.id_zona=LEFT(cs.id_zona,8) )
JOIN view_ciudades ciu
ON (ciu.id_ciudad = cli.id_zona)
WHERE LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPB]" AND NOT (i.tipo LIKE "5") AND NOT (dv.id_cliente LIKE "999") AND dv.fecha = '2012-09-14' AND YEAR(dv.fecha)=YEAR('2012-09-14')
GROUP BY z.id_zona
ORDER BY valor DESC

View File

@ -0,0 +1,26 @@
SELECT
lp.id_sucursal AS Sucursal,
lp.id_listaprecio AS Lista_Precios,
i.id_linea AS Linea,
lp.id_item AS Cod_Item,
i.descripcion AS Item,
i.unidad1 AS Unidad_Medida,
i.peso AS Peso_Teorico,
lp.precio AS Precio
FROM
lista_precios lp join item i
USING
(id_sucursal,id_item)
WHERE
i.estado = '0'
AND i.tipo = 1
AND lp.precio > 1
AND (lp.id_listaprecio = '13B' OR lp.id_listaprecio = '16' OR
lp.id_listaprecio = '17' OR
lp.id_listaprecio = 'AA')
ORDER BY
Sucursal, Lista_Precios, Cod_Item

View File

@ -0,0 +1,29 @@
-- Ventas por documento por cliente por familia con sector
SELECT
dv.id_sucursal AS Suc,
dv.id_documento AS Documento,
LEFT(dv.id_documento,2) AS TipoDocumento,
MONTH(dv.fecha) AS Mes,
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
AND dvi.id_sucursal=i.id_sucursal )
LEFT JOIN linea l
ON ( i.id_linea = l.id_linea )
WHERE
NOT (dv.id_cliente LIKE "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) = 201208
AND l.tipo = 1
GROUP BY
Documento
ORDER BY
Documento

View File

@ -0,0 +1,28 @@
-- Ventas por mes, item
SELECT
DATE_FORMAT(dv.fecha,"%Y-%m") AS Mes,
i.id_item AS Item,
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
AND dvi.id_sucursal=i.id_sucursal )
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 YEAR(dv.fecha)=2012
GROUP BY
Item,Mes
ORDER BY
Item,Mes

View File

@ -0,0 +1,23 @@
-- Saldo de Cartera por sucursal con corte al ultimo dia del mes dado
-- Instrucciones de uso:
-- mysql --defaults-file=$HOME/.my_comercial_consultas.cnf -e "set @meses=1; source $HOME/sql/MONTHLY-Analysis_of_Accounts_Receivable.sql" > $HOME/Agofer_Accounts_Receivable_$(date --date="last month" +%Y-%m).csv
SELECT
ch.fecha_historico AS Fecha_Corte,
s.nombre_sucursal AS Sucursal,
SUM(ch.valor) AS Amount_due
FROM
cartera_historico ch
JOIN sucursal s
USING (id_sucursal)
WHERE
ch.fecha_historico = LAST_DAY(ch.fecha_historico)
AND
YEAR(ch.fecha_historico) >= 2010
GROUP BY
ch.id_sucursal, ch.fecha_historico

View File

@ -0,0 +1,37 @@
SELECT
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
l.descripcion AS Linea2,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Suc,Sector,Linea2
ORDER BY
Ano,Suc,Sector,Linea2

View File

@ -0,0 +1,37 @@
SELECT
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Suc,
se.descripcion AS Sector,
l.descripcion AS Linea2,
dv.id_cliente AS Cliente,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Suc,Sector,Linea2,Cliente
ORDER BY
Ano,Suc,Sector,Linea2,Cliente

View File

@ -0,0 +1,34 @@
SELECT
YEAR(dv.fecha) AS Ano,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano
ORDER BY
Ano

View File

@ -0,0 +1,35 @@
SELECT
YEAR(dv.fecha) AS Ano,
l.descripcion AS Linea2,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Linea2
ORDER BY
Ano,Linea2

View File

@ -0,0 +1,37 @@
SELECT
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Suc,
l.descripcion AS Linea,
fp.dias AS Plazo,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN forma_pago fp
USING (id_formapago)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Suc,Linea,Plazo
ORDER BY
Ano,Suc,Linea,Plazo

View File

@ -0,0 +1,35 @@
SELECT
YEAR(dv.fecha) AS Ano,
se.descripcion AS Sector,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Sector
ORDER BY
Ano,Sector

View File

@ -0,0 +1,35 @@
SELECT
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Suc,
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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2010
AND YEAR(dv.fecha) <= 2012
GROUP BY
Ano,Suc
ORDER BY
Ano,Suc

View File

@ -0,0 +1,36 @@
-- Facturas y Devoluciones (documento) por cliente por sucursal
-- pwc (via jtorres):
-- Detalle de facturacion entre 2012-10-01 y 2013-03-31
-- Detalle devolucion en ventas entre 2012-10-01 y 2013-03-31
-- Todos los documentos en ese periodo.
-- Los datos requeridos para cada uno de ellos son:
-- Número de documento, fecha, valor, NIT y nombre tercero.
SELECT
dv.id_sucursal AS Suc,
dv.id_documento AS Documento,
dv.fecha AS Fecha,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
WHERE
NOT (dv.id_cliente LIKE "999")
AND dv.fecha >= "2013-10-01"
AND dv.fecha <= "2013-12-31"
AND LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
GROUP BY
Suc,Nit,Documento
ORDER BY
Suc,Nit,Documento

View File

@ -0,0 +1,41 @@
-- Precio de venta promedio de la lamina HR por kilo, mes a mes en 5 años
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
SUM(dvi.valor) AS Net_Sales,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS Amount_Kg
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
(l.id_linea = 27 OR l.id_linea = 30 OR l.id_linea = 32)
AND LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND NOT (dv.id_cliente LIKE "999")
AND dv.fecha >= '2008-01-01'
GROUP BY
Month
ORDER BY
Month

View File

@ -0,0 +1,81 @@
-- Ventas mensuales por linea por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
-- Excluye traslados
-- Cambios solicitados en 2013-06-25: Zona y Suc2
-- Ejecutar asi:
-- mysql --defaults-file=$HOME/.my_comercial_consultas.cnf < $HOME/sql/MONTHLY-sales_per_line_per_client.sql > $HOME/Ventas_por_cliente_$(date --date="last month" +%Y-%m).csv
SELECT
IF(
dv.id_vendedor IN ('ASJ','RDC','RDCA','EZS','JRM'),
'bog_estr',
dv.id_sucursal
) AS Suc_Analisis,
dv.id_sucursal AS Suc_Sistema,
IF(
dv.id_sucursal IN ('arm','per'),
'eje_cafetero',
IF(
dv.id_sucursal IN ('bar','san'),
'bar_san',
dv.id_sucursal
)
) AS Zona,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Nit,
cs.nombre_cliente AS Cliente,
dv.id_vendedor AS CodVendedor,
vdr.nombre_vendedor AS Vendedor,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS ConsecutivoMes,
l.id_linea_analisis AS CodLinea1,
l.linea_analisis AS Linea1,
l.id_linea AS CodLinea2,
l.descripcion AS Linea2,
l.familia AS Familia,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1))), 2
) AS Peso_Kg,
SUM(dvi.valor) AS Valor,
SUM(dvi.valor-dvi.costo) AS Utilidad,
ls.subfamilia AS Tipo,
YEAR(dv.fecha) AS Ano,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Peso_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
ON ( dvi.id_item=i.id_item
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
JOIN linea_has_subfamilia ls
ON ( l.id_linea = ls.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MBP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) = 2010
GROUP BY
Suc_Sistema,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor
ORDER BY
Suc_Sistema,Nit,ConsecutivoMes,CodLinea1,CodLinea2,CodVendedor

View File

@ -0,0 +1,37 @@
-- Number of invoices per line per year
SELECT
YEAR(dv.fecha) AS Year,
l.linea_analisis AS Line,
IF(
LEFT(dv.id_documento,1) = 'F',
'Invoice',
'Return'
) AS Type_of_Document,
COUNT(DISTINCT dv.id_documento) AS Number_of_Documents,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2009
AND YEAR(dv.fecha) <= 2013
GROUP BY
Year, Line, Type_of_Document
ORDER BY
Year DESC, Line ASC, Type_of_Document ASC

View File

@ -0,0 +1,36 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
SELECT
YEAR(dv.fecha) AS Year,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN formapago_documento fpd
USING (id_documento, id_sucursal)
JOIN forma_pago fp
USING (id_formapago, id_sucursal)
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "E?F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Year, Sale_conditions, Line

View File

@ -0,0 +1,26 @@
SELECT
i.id_item AS cod_item,
i.descripcion AS item,
i.unidad1 AS unidad_medida,
i.peso AS peso_kg,
IF(i.tipo = 1, 'Producto', 'Servicio') AS tipo,
l.id_linea AS cod_linea,
l.descripcion AS sublinea,
la.id_linea_analisis AS cod_linea_analisis,
la.descripcion AS linea_analisis
FROM
item i
LEFT JOIN linea l
USING (id_linea,tipo)
LEFT JOIN linea_has_linea_analisis lla
ON lla.id_linea = LEFT( i.id_linea, 2 )
LEFT JOIN linea_analisis la
USING (id_linea_analisis)
WHERE
i.estado = '0'
AND LENGTH(i.descripcion) > 2
AND i.id_sucursal = 'bog'
GROUP BY
cod_item

View File

@ -0,0 +1,41 @@
-- Numero de clientes Ene-Sep 2012-2013 por sucursal por linea
SELECT
YEAR(dv.fecha) AS Ano,
dv.id_sucursal AS Suc,
l.linea_analisis AS Linea,
COUNT(DISTINCT dv.id_cliente) AS Clientes,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) 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
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MP]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2012
AND MONTH(dv.fecha) <= 9
GROUP BY
Ano,Suc,Linea
ORDER BY
Ano,Suc,Linea

View File

@ -0,0 +1,29 @@
-- Ventas por sucursal y linea
SELECT
YEAR(dv.fecha) AS Ano,
dvi.id_sucursal AS Sucursal,
l.id_linea AS Linea,
l.descripcion AS Descripcion,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) As Peso,
SUM(dvi.valor) AS Valor,
SUM(dvi.costo) AS Costo
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-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha)=2013
GROUP BY
Sucursal,Linea
ORDER BY
Sucursal,Linea

View File

@ -0,0 +1,82 @@
-- Ventas mensuales por linea por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
-- Excluye traslados
-- Cambios solicitados en 2013-06-25: Zona y Suc2
SELECT
IF(
dv.id_vendedor IN ('ASJ','RDC','RDCA','EZS','JRM'),
'bog_estr',
dv.id_sucursal
) AS Branch_for_analysis,
dv.id_sucursal AS Branch,
IF(
dv.id_sucursal IN ('arm','per'),
'eje_cafetero',
IF(
dv.id_sucursal IN ('bar','san'),
'bar_san',
dv.id_sucursal
)
) AS Zone,
se.id_sector AS Id_Sector,
se.descripcion AS Sector,
sbse.descripcion AS Subsector,
cs.id_cliente AS Id_Client,
cs.nombre_cliente AS Client,
dv.id_vendedor AS Id_Salesrep,
vdr.nombre_vendedor AS Salesrep,
YEAR(dv.fecha) AS Year,
MONTH(dv.fecha) + ((YEAR(dv.fecha)-2011)*12) AS Month_seq,
l.familia AS 'Type',
ls.subfamilia AS Subtype,
l.id_linea_analisis AS Id_Line1,
l.linea_analisis AS Line1,
l.id_linea AS Id_Line2,
l.descripcion AS Line2,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS Sales_Kg,
SUM(dvi.valor) AS Sales_COP,
SUM(dvi.valor-dvi.costo) AS Gross_Margin,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Sales_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
ON ( dvi.id_item=i.id_item
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN linea_has_subfamilia ls
ON ( l.id_linea = ls.id_linea)
LEFT JOIN solosector se
ON ( LEFT(cs.id_sector,2) = se.id_sector )
LEFT JOIN subsector sbse
ON ( cs.id_sector = sbse.id_sector )
LEFT JOIN vendedor vdr
ON ( dv.id_vendedor = vdr.id_vendedor
AND dv.id_sucursal = vdr.id_sucursal)
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MBPC]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) = 2012
GROUP BY
Month_seq,Branch,Id_Client,Month_seq,Id_Line1,Id_Line2,Id_Salesrep
ORDER BY
Month_seq,Branch,Id_Client,Month_seq,Id_Line1,Id_Line2,Id_Salesrep

View File

@ -0,0 +1,27 @@
-- Entradas por sucursal y linea
SELECT
YEAR(e.fecha) AS Ano,
e.id_sucursal AS Sucursal,
l.id_linea AS Linea,
l.descripcion AS Descripcion,
SUM(ei.costo*ei.cantidad) AS Costo,
SUM(ei.cantidad*i.peso) AS Peso
FROM
entrada e
JOIN entrada_has_item ei
ON ( e.id_entrada=ei.id_entrada AND e.id_sucursal=ei.id_sucursal )
JOIN item i
ON ( ei.id_item=i.id_item AND ei.id_sucursal=i.id_sucursal )
JOIN linea l
ON ( l.id_linea = left(i.id_linea,2) AND l.tipo=i.tipo )
WHERE
YEAR(e.fecha)=2013
GROUP BY
Sucursal,Linea
ORDER BY
Sucursal,Linea

View File

@ -0,0 +1,29 @@
-- Traslados por sucursal y linea
SELECT
YEAR(dv.fecha) AS Ano,
dvi.id_sucursal AS Sucursal,
l.id_linea AS Linea,
l.descripcion AS Descripcion,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) As Peso,
SUM(dvi.valor) AS Valor,
SUM(dvi.costo) AS Costo
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 "[TD][0-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha)=2013
GROUP BY
Sucursal,Linea
ORDER BY
Sucursal,Linea

View File

@ -0,0 +1,36 @@
-- Evolucion de precio de venta (COP/Kg) por linea dia a dia para un rango
-- de fechas
SELECT
dv.fecha AS Date,
l.id_linea AS Id_Line,
l.descripcion AS Line,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS Sales_Kg,
SUM(dvi.valor) AS Sales_COP,
SUM(dvi.valor-dvi.costo) AS Gross_Margin
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 )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,1) = "F"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND dv.fecha >= "2013-01-01"
AND dv.fecha <= "2014-01-31"
GROUP BY
Date,Line
ORDER BY
Date,Line

View File

@ -0,0 +1,22 @@
-- Clientes por sucursal por año sin lineas
SELECT c.id_cliente AS Nit,
dv.id_sucursal AS Sucursal,
c.nombre_cliente AS Cliente,
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 cliente_has_sucursal c
ON ( dv.id_cliente=c.id_cliente
AND dv.id_sucursal=c.id_sucursal )
WHERE LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND dv.fecha >= '2011-01-01'
GROUP BY Sucursal, Cliente
HAVING Valor > 10000000

View File

@ -0,0 +1,47 @@
-- Entradas de almacen por linea del mes
SELECT
e.id_sucursal AS Sucursal,
e.id_entrada AS Entrada,
e.id_proveedor AS Nit_Proveedor,
p.nombre_proveedor AS Nombre_Proveedor,
e.fecha AS Fecha,
i.id_item AS Codigo_item,
i.descripcion AS Item,
l.descripcion AS Linea,
sl.descripcion AS Sublinea,
SUM(ei.costo * ei.cantidad) AS Costo,
SUM(ei.cantidad) AS Cantidad,
SUM(ei.costo) AS Costo_unitario,
ei.unidad AS Unidad_medida,
de.factura AS Factura
FROM
entrada e
JOIN entrada_has_item ei
ON ( e.id_entrada = ei.id_entrada
AND e.id_sucursal = ei.id_sucursal )
LEFT JOIN documentos_entrada de
ON (de.id_entrada = e.id_entrada
AND de.id_sucursal = e.id_sucursal )
JOIN item i
ON ( ei.id_item = i.id_item
AND ei.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON ( l.id_linea = left( i.id_linea, 2 ) )
JOIN linea sl
ON ( sl.id_linea = i.id_linea
AND sl.tipo = i.tipo )
JOIN proveedor p
ON ( p.id_proveedor = e.id_proveedor )
JOIN proveedor_has_sucursal ps
ON ( p.id_proveedor = ps.id_proveedor
AND ps.id_sucursal = e.id_sucursal )
WHERE
p.id_proveedor > 999
AND YEAR(e.fecha) = 2013
GROUP BY
Entrada, Sucursal, Codigo_item

View File

@ -0,0 +1,19 @@
SELECT
dv.id_sucursal, i.id_item, i.descripcion, 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 AND dvi.id_sucursal = i.id_sucursal )
LEFT JOIN linea l
ON ( l.id_linea = i.id_linea AND l.tipo = i.tipo )
WHERE
NOT (
dv.id_cliente LIKE "999"
)
AND YEAR( dv.fecha ) = 2013
AND (
l.id_linea IS NULL
)
GROUP BY dv.id_sucursal,dvi.id_item
ORDER BY valor DESC

View File

@ -0,0 +1,37 @@
-- Numero de clientes por linea por mes
-- Para reunion de Directorio
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
l.linea_analisis AS Linea,
COUNT(DISTINCT dv.id_cliente) AS Clientes,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) 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
AND dvi.id_sucursal=i.id_sucursal )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2012
GROUP BY
Month,Linea
ORDER BY
Month,Linea

View File

@ -0,0 +1,38 @@
-- Numero de clientes por linea por año
-- Para reunion de Directorio
SELECT
YEAR(dv.fecha) AS Ano,
l.linea_analisis AS Linea,
dv.id_cliente AS cliente,
COUNT(DISTINCT dv.id_cliente) AS Clientes,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) 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
AND dvi.id_sucursal=i.id_sucursal )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2012
GROUP BY
Ano,Linea,cliente
ORDER BY
Ano,Linea,cliente

View File

@ -0,0 +1,37 @@
-- Numero de clientes por tipo (largos/planos) por mes
-- Para reunion de Directorio
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
ls.subfamilia AS Linea,
COUNT(DISTINCT dv.id_cliente) AS Clientes,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) 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
AND dvi.id_sucursal=i.id_sucursal )
LEFT JOIN linea_has_subfamilia ls
ON ( LEFT(i.id_linea,2) = ls.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2012
GROUP BY
Month,Linea
ORDER BY
Month,Linea

View File

@ -0,0 +1,33 @@
-- Entradas por item por proveedor
SELECT
YEAR(e.fecha) AS Ano,
l.id_linea AS Cod_Linea,
l.descripcion AS Linea,
i.id_item AS Cod_Item,
i.descripcion AS Item,
p.id_proveedor AS Nit,
p.nombre_proveedor AS Proveedor,
SUM(ei.costo*ei.cantidad) AS Costo,
SUM(ei.cantidad*i.peso) AS Peso
FROM
entrada e
JOIN entrada_has_item ei
ON ( e.id_entrada=ei.id_entrada AND e.id_sucursal=ei.id_sucursal )
JOIN item i
ON ( ei.id_item=i.id_item AND ei.id_sucursal=i.id_sucursal )
JOIN linea l
ON ( l.id_linea = left(i.id_linea,2) AND l.tipo=i.tipo )
LEFT JOIN proveedor p
USING (id_proveedor)
WHERE
YEAR(e.fecha)=2013
GROUP BY
Nit, Cod_Item
HAVING
Nit > 999
ORDER BY
Nit, Cod_Item

View File

@ -0,0 +1,50 @@
-- Ventas mensuales por linea por cliente
-- Incluye familia, sector, y linea de analisis de Directorio
-- Excluye traslados
-- Cambios solicitados en 2013-06-25: Zona y Suc2
SELECT
YEAR(dv.fecha) AS Year,
cs.id_cliente AS Id_Client,
cs.nombre_cliente AS Client,
i.id_item AS Id_Item,
i.descripcion AS Item,
l.id_linea AS Id_Line,
l.descripcion AS Line,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS Sales_Kg,
SUM(dvi.valor) AS Sales_COP,
SUM(dvi.costo) AS COGS,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Sales_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
ON ( dvi.id_item=i.id_item
AND dvi.id_sucursal=i.id_sucursal )
JOIN cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal
AND dv.id_cliente=cs.id_cliente )
LEFT JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MBPC]"
AND (i.tipo != "5")
AND YEAR(dv.fecha) = 2013
GROUP BY
Id_Client,Id_Item
HAVING
Id_Client > 999
ORDER BY
Id_Client,Id_Item

View File

@ -0,0 +1,32 @@
-- Items con entradas en los ultimos 12 meses
SELECT
DISTINCT i.id_item AS cod_item,
i.id_sucursal AS sucursal,
i.descripcion AS item,
i.unidad1 AS unidad_medida,
i.peso AS peso_kg,
IF(i.tipo = 1, 'Producto', 'Servicio') AS tipo,
l.id_linea AS cod_linea,
l.descripcion AS linea,
la.id_linea_analisis AS cod_linea_analisis,
la.descripcion AS linea_analisis
FROM
entrada e
JOIN entrada_has_item ei
USING(id_entrada,id_sucursal)
JOIN item i
USING (id_item,id_sucursal)
LEFT JOIN linea l
ON l.id_linea = LEFT( i.id_linea, 2 )
AND l.tipo = i.tipo
LEFT JOIN linea_has_linea_analisis lla
ON lla.id_linea = LEFT( i.id_linea, 2 )
LEFT JOIN linea_analisis la
USING (id_linea_analisis)
WHERE PERIOD_DIFF(
DATE_FORMAT(now(),'%Y%m'),
DATE_FORMAT(e.fecha,'%Y%m')
) <= 12

View File

@ -0,0 +1,26 @@
-- Items con existencia actual
SELECT
DISTINCT i.id_item AS cod_item,
i.id_sucursal AS sucursal,
i.descripcion AS item,
i.unidad1 AS unidad_medida,
i.peso AS peso_kg,
IF(i.tipo = 1, 'Producto', 'Servicio') AS tipo,
l.id_linea AS cod_linea,
l.descripcion AS sublinea,
la.id_linea_analisis AS cod_linea_analisis,
la.descripcion AS linea_analisis
FROM
existencia_item_bodega ex
JOIN item i
USING (id_item,id_sucursal)
LEFT JOIN linea l
ON l.id_linea = LEFT( i.id_linea, 2 )
AND l.tipo = i.tipo
LEFT JOIN linea_has_linea_analisis lla
ON lla.id_linea = LEFT( i.id_linea, 2 )
LEFT JOIN linea_analisis la
USING (id_linea_analisis)
WHERE ex.cantidad > 0

View File

@ -0,0 +1,32 @@
-- Items con ventas en los ultimos 12 meses
SELECT
DISTINCT i.id_item AS cod_item,
i.id_sucursal AS sucursal,
i.descripcion AS item,
i.unidad1 AS unidad_medida,
i.peso AS peso_kg,
IF(i.tipo = 1, 'Producto', 'Servicio') AS tipo,
l.id_linea AS cod_linea,
l.descripcion AS linea,
la.id_linea_analisis AS cod_linea_analisis,
la.descripcion AS linea_analisis
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING(id_documento,id_sucursal)
JOIN item i
USING (id_item,id_sucursal)
LEFT JOIN linea l
ON l.id_linea = LEFT( i.id_linea, 2 )
AND l.tipo = i.tipo
LEFT JOIN linea_has_linea_analisis lla
ON lla.id_linea = LEFT( i.id_linea, 2 )
LEFT JOIN linea_analisis la
USING (id_linea_analisis)
WHERE PERIOD_DIFF(
DATE_FORMAT(now(),'%Y%m'),
DATE_FORMAT(dv.fecha,'%Y%m')
) <= 12

View File

@ -0,0 +1,31 @@
-- Ventas por mes, item
SELECT
DATE_FORMAT(dv.fecha,"%Y-%m") AS Mes,
i.id_item AS Codigo,
i.descripcion AS Item,
SUM(dvi.valor) AS Valor,
SUM(dvi.cantidad) AS Cantidad,
i.unidad1 AS UoM
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 )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha)=@ANO
GROUP BY
Item,Mes
ORDER BY
Item,Mes

View File

@ -0,0 +1,42 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
dv.id_cliente AS Customer,
COUNT(DISTINCT dv.id_cliente) AS Count_Customers,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
LEFT JOIN formapago_documento fpd
ON (fpd.id_documento = dv.id_documento
AND fpd.id_sucursal = dv.id_sucursal)
LEFT JOIN forma_pago fp
ON (fp.id_formapago = fpd.id_formapago
AND fpd.id_sucursal = fp.id_sucursal)
WHERE
(LEFT(dv.id_documento,2) = 'DV' OR
LEFT(dv.id_documento,2) = 'EF' OR
LEFT(dv.id_documento,1) = 'F')
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Month, Sale_conditions, Customer, Line

View File

@ -0,0 +1,34 @@
-- Sales per payment type year to year
-- For Board Meeting presentation
SELECT
YEAR(dv.fecha) AS Year,
COUNT(DISTINCT dv.id_cliente) AS Num_Customers,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN formapago_documento fpd
USING (id_documento, id_sucursal)
JOIN forma_pago fp
USING (id_formapago, id_sucursal)
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
WHERE
LEFT(dv.id_documento,2) RLIKE "F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2012
GROUP BY
Year, Sale_conditions

View File

@ -0,0 +1,32 @@
-- Sales per payment type year to year
-- For Board Meeting presentation
SELECT
YEAR(dv.fecha) AS Year,
dv.id_sucursal AS Branch,
COUNT(DISTINCT dv.id_documento) AS Number_of_Documents,
IF(
(dv.fecha_vencimiento - dv.fecha) <= 5,
'cash',
'credit'
) AS Sale_conditions,
ROUND(
SUM(dvi.cantidad * i.peso * (IF(dvi.valor>0,1,-1))), 4
) AS Weight_Kg,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
USING (id_item)
WHERE
(LEFT(dv.id_documento,2) = 'DV' OR
LEFT(dv.id_documento,2) = 'EF' OR
LEFT(dv.id_documento,1) = 'F')
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2016
GROUP BY
Year, Sale_conditions

View File

@ -0,0 +1,20 @@
SELECT
i.id_linea AS cod_sublinea,
l.descripcion AS sublinea,
i.id_item AS Item,
i.descripcion AS Descripcion
FROM
item i
LEFT JOIN linea l
ON ( l.id_linea = i.id_linea )
WHERE
(i.estado = '0')
GROUP BY
i.id_item
ORDER BY
i.id_item DESC

View File

@ -0,0 +1,41 @@
SELECT
dv.id_sucursal AS Sucursal,
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Mes,
l.id_linea AS Line,
i.id_linea AS Sub_line,
i.id_item AS Item,
i.descripcion AS Description,
SUM(dvi.valor) AS Net_Sales,
ROUND(
SUM(
dvi.cantidad * i.peso * (IF(dvi.valor >0, 1 , -1))
),
2
) AS Amount_Kg,
SUM(
dvi.cantidad * (IF(dvi.valor >0, 1 , -1))
) AS Amount_UoM,
SUM(dvi.costo) AS Cost_of_goods_sold
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 )
LEFT JOIN view_lineas l
ON ( l.id_linea = LEFT( i.id_linea, 2 ) )
WHERE
LEFT( dv.id_documento, 2 ) RLIKE "F|D[^0-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) LIKE '2014%'
GROUP BY
i.id_item, Sucursal, Mes
ORDER BY
i.id_item DESC

View File

@ -0,0 +1,42 @@
-- Clientes consolidados por año con ventas y devoluciones
-- Instrucciones de uso:
-- mysql --defaults-file=$HOME/.my_comercial_consultas.cnf < YEARLY-Customers_per_fiscal_year.sql > ../Agofer_Customers_per_year_FY$(date +%Y).csv
-- Nota: El campo Vendedor solo muestra el de una sucursal
SELECT c.id_cliente AS Customer_Id,
c.nombre_cliente AS Customer,
vdr.nombre_vendedor AS Sales_Associate,
c.telefono AS Phone,
c.direccion AS Address,
z.descripcion AS City,
se.descripcion AS Sector,
SUM(dvi.valor) AS Net_Sales
FROM documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
LEFT JOIN vendedor vdr
USING ( id_vendedor,id_sucursal )
LEFT JOIN cliente_has_sucursal c
USING ( id_cliente,id_sucursal )
JOIN sucursal su
USING ( id_sucursal )
LEFT JOIN sector se
ON ( se.id_sector=LEFT(c.id_sector,2) )
LEFT JOIN zona z
USING ( id_zona )
WHERE
(LEFT(dv.id_documento,2) = 'DV' OR
LEFT(dv.id_documento,2) = 'EF' OR
LEFT(dv.id_documento,1) = 'F')
AND dv.fecha >= DATE(CONCAT(YEAR(now())-1,'-10-01'))
AND dv.fecha <= DATE(CONCAT(YEAR(now()),'-09-30'))
GROUP BY Customer_Id
HAVING Net_Sales > 0
ORDER BY Net_Sales DESC

View File

@ -0,0 +1,33 @@
-- 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
AND dvi.id_sucursal=i.id_sucursal )
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) RLIKE "F|D[^0-9MBPC]"
AND (i.tipo != "5")
AND (dv.id_cliente != "999")
AND YEAR(dv.fecha) >= 2011
GROUP BY
Ano,Trim
ORDER BY
Ano,Trim

View File

@ -0,0 +1,32 @@
-- Entradas por item por proveedor
SELECT
YEAR(e.fecha) AS Ano,
l.id_linea AS Cod_Linea,
l.descripcion AS Linea,
i.id_item AS Cod_Item,
i.descripcion AS Item,
p.id_proveedor AS Nit,
p.nombre_proveedor AS Proveedor,
i.peso AS Peso
FROM
entrada e
JOIN entrada_has_item ei
ON ( e.id_entrada=ei.id_entrada AND e.id_sucursal=ei.id_sucursal )
JOIN item i
ON ( ei.id_item=i.id_item AND ei.id_sucursal=i.id_sucursal )
JOIN linea l
ON ( l.id_linea = i.id_linea AND l.tipo=i.tipo )
LEFT JOIN proveedor p
USING (id_proveedor)
WHERE
YEAR(e.fecha) = 2014
GROUP BY
Nit, Cod_Item
HAVING
Proveedor LIKE '%IPAC%'
ORDER BY
Nit, Cod_Item

View File

@ -0,0 +1,28 @@
-- Ventas de contado por documento por año
SELECT
dv.id_documento AS documento_ventas, cs.nombre_cliente,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS peso,
SUM(dvi.valor) AS valor, 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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN formapago_documento fd
ON ( fd.id_documento=dv.id_documento AND fd.id_sucursal=dv.id_sucursal )
JOIN forma_pago f
ON ( f.id_formapago=fd.id_formapago AND f.id_sucursal=fd.id_sucursal )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND fd.id_formapago = '00'
AND YEAR(dv.fecha)=YEAR('2015-01-01')
GROUP BY
dv.id_documento
ORDER BY
valor DESC

View File

@ -0,0 +1,30 @@
-- Ventas de contado por documento por año de un solo cliente
SELECT
dv.fecha AS Fecha,
dv.id_documento AS Documento_ventas, cs.nombre_cliente AS Cliente,
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0,1,-1))) AS peso,
SUM(dvi.valor) AS valor, SUM(dvi.valor-dvi.costo) AS utilidad,
f.descripcion AS Forma_pago
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 cliente_has_sucursal cs
ON ( dv.id_sucursal=cs.id_sucursal AND dv.id_cliente=cs.id_cliente )
JOIN formapago_documento fd
ON ( fd.id_documento=dv.id_documento AND fd.id_sucursal=dv.id_sucursal )
JOIN forma_pago f
ON ( f.id_formapago=fd.id_formapago AND f.id_sucursal=fd.id_sucursal )
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND NOT (i.tipo LIKE "5")
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha)=YEAR('2012-01-01')
AND dv.id_cliente = "73104915"
GROUP BY
dv.id_documento
ORDER BY
valor DESC

View File

@ -0,0 +1,21 @@
-- Numero de clientes Ene-Sep 2012-2013 por sucursal por linea
SELECT
dv.id_sucursal AS Suc,
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Mes,
COUNT(DISTINCT dv.id_cliente) AS Clientes
FROM
documento_ventas dv
WHERE
LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND (dv.id_cliente != "999")
AND EXTRACT(YEAR_MONTH FROM dv.fecha) >= 201507
AND EXTRACT(YEAR_MONTH FROM dv.fecha) <= 201509
GROUP BY
Mes, Suc
ORDER BY
Mes, Suc

View File

@ -0,0 +1,42 @@
-- Sales per payment type year to year
-- For Board Meeting presentation
SELECT
YEAR(dv.fecha) AS Year,
COUNT(DISTINCT dv.id_cliente) AS Num_Customers,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
IF(
l.id_linea_analisis >= 7
AND l.id_linea_analisis <= 19,
'flat',
'long'
) AS Family,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN formapago_documento fpd
USING (id_documento, id_sucursal)
JOIN forma_pago fp
USING (id_formapago, id_sucursal)
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON (l.id_linea = LEFT(i.id_linea,2))
WHERE
LEFT(dv.id_documento,2) RLIKE "F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2012
GROUP BY
Year, Family, Sale_conditions

View File

@ -0,0 +1,39 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
-- Usando tablas forma_pago, formapago_documento, y linea_analisis
SELECT
YEAR(dv.fecha) AS Year,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING (id_documento, id_sucursal)
JOIN formapago_documento fpd
USING (id_documento, id_sucursal)
JOIN forma_pago fp
USING (id_formapago)
JOIN item i
USING (id_item)
JOIN view_lineas l
USING (id_linea)
WHERE
(LEFT(dv.id_documento,2) = 'DV' OR
LEFT(dv.id_documento,2) = 'EF' OR
LEFT(dv.id_documento,1) = 'F')
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Year, Sale_conditions, Line

View File

@ -0,0 +1,33 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
-- Sin usar tablas forma_pago, formapago_documento, ni linea_analisis
SELECT
YEAR(dv.fecha) AS Year,
IF(
(dv.fecha_vencimiento - dv.fecha) <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
USING (id_item)
JOIN view_lineas l
USING ( id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "E?F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Year, Sale_conditions, Line

View File

@ -0,0 +1,37 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
dv.id_cliente AS Customer,
COUNT(DISTINCT dv.id_cliente) AS Count_Customers,
IF(
fp.dias <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
USING (id_item)
JOIN view_lineas l
USING (id_linea)
LEFT JOIN formapago_documento fpd
USING (id_documento, id_sucursal)
LEFT JOIN forma_pago fp
USING (id_formapago)
WHERE
LEFT(dv.id_documento,3) RLIKE "E?F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Month, Sale_conditions, Customer, Line

View File

@ -0,0 +1,27 @@
-- Sales per per line year to year
-- For Board Meeting presentation
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value,
SUM(dvi.costo) AS Cost
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
USING (id_item)
JOIN view_lineas l
USING (id_linea)
WHERE
LEFT(dv.id_documento,3) RLIKE "E?F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Month, Line

View File

@ -0,0 +1,28 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value,
SUM(dvi.costo) AS Cost
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
ON ( dvi.id_item = i.id_item
AND dvi.id_sucursal = i.id_sucursal )
JOIN view_lineas l
ON ( LEFT(i.id_linea,2) = l.id_linea )
WHERE
LEFT(dv.id_documento,2) RLIKE "F[^0-9MPBC]"
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Month, Line

View File

@ -0,0 +1,35 @@
-- Sales per payment type per line year to year
-- For Board Meeting presentation
SELECT
EXTRACT(YEAR_MONTH FROM dv.fecha) AS Month,
dv.id_cliente AS Customer,
COUNT(DISTINCT dv.id_cliente) AS Count_Customers,
IF(
(dv.fecha_vencimiento - dv.fecha) <= 5,
'cash',
'credit'
) AS Sale_conditions,
l.linea_analisis AS Line,
ROUND(
SUM(dvi.cantidad*i.peso*(IF(dvi.valor>0, 1, -1)))/1000, 2
) AS Weight_MT,
SUM(dvi.valor) AS Value
FROM
documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
JOIN item i
USING (id_item)
JOIN view_lineas l
USING (id_linea)
WHERE
(LEFT(dv.id_documento,2) = 'DV' OR
LEFT(dv.id_documento,2) = 'EF' OR
LEFT(dv.id_documento,1) = 'F')
AND NOT (dv.id_cliente LIKE "999")
AND YEAR(dv.fecha) >= 2015
GROUP BY
Month, Sale_conditions, Customer, Line

View File

@ -0,0 +1,40 @@
-- Clientes consolidados por año con ventas y devoluciones
-- Instrucciones de uso:
-- mysql --defaults-file=$HOME/.my_comercial_consultas.cnf < YEARLY-Customers_per_fiscal_year.sql > ../Agofer_Customers_per_year_FY$(date +%Y).csv
-- Nota: El campo Vendedor solo muestra el de una sucursal
SELECT c.id_cliente AS Customer_Id,
c.nombre_cliente AS Customer,
vdr.nombre_vendedor AS Sales_Associate,
c.telefono AS Phone,
c.direccion AS Address,
z.descripcion AS City,
se.descripcion AS Sector,
SUM(dvi.valor) AS Net_Sales
FROM documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
LEFT JOIN vendedor vdr
USING ( id_vendedor,id_sucursal )
LEFT JOIN cliente_has_sucursal c
USING ( id_cliente,id_sucursal )
JOIN sucursal su
USING ( id_sucursal )
LEFT JOIN sector se
ON ( se.id_sector=LEFT(c.id_sector,2) )
LEFT JOIN zona z
USING ( id_zona )
WHERE LEFT(dv.id_documento,2) RLIKE "F|D[^0-9MPBC]"
AND (dv.id_cliente > 999)
AND dv.fecha >= DATE(CONCAT(YEAR(now())-2,'-10-01'))
AND dv.fecha <= DATE(CONCAT(YEAR(now())-1,'-03-31'))
GROUP BY Customer_Id
HAVING Net_Sales > 0
ORDER BY Net_Sales DESC

View File

@ -0,0 +1,40 @@
-- Clientes consolidados por año con ventas y devoluciones
-- Instrucciones de uso:
-- mysql --defaults-file=$HOME/.my_comercial_consultas.cnf < YEARLY-Customers_per_fiscal_year.sql > ../Agofer_Customers_per_year_FY$(date +%Y).csv
-- Nota: El campo Vendedor solo muestra el de una sucursal
SELECT c.id_cliente AS Customer_Id,
c.nombre_cliente AS Customer,
vdr.nombre_vendedor AS Sales_Associate,
dv.id_sucursal AS Branch,
c.telefono AS Phone,
c.direccion AS Address,
z.descripcion AS City,
se.descripcion AS Sector,
SUM(dvi.valor) AS Net_Sales
FROM documento_ventas dv
JOIN documento_ventas_has_item dvi
USING ( id_documento,id_sucursal )
LEFT JOIN vendedor vdr
USING ( id_vendedor,id_sucursal )
LEFT JOIN cliente_has_sucursal c
USING ( id_cliente,id_sucursal )
JOIN sucursal su
USING ( id_sucursal )
LEFT JOIN sector se
ON ( se.id_sector=LEFT(c.id_sector,2) )
LEFT JOIN zona z
USING ( id_zona )
WHERE (dv.id_cliente > 999)
AND dv.fecha >= DATE(CONCAT(YEAR(now())-1,'-10-01'))
AND dv.fecha <= DATE(CONCAT(YEAR(now()),'-09-30'))
GROUP BY Customer_Id
HAVING Net_Sales > 0
ORDER BY Net_Sales DESC

Some files were not shown because too many files have changed in this diff Show More