Ir al contenido

margin

Esta función calcula el margen de venta a partir del coste de venta y el importe de venta. El margen de venta es una medida de la rentabilidad de una empresa. Es un valor porcentual que se calcula dividiendo el margen absoluto entre las ventas totales.

Margen de ventas

Crono SQL verifica que el denominador no sea cero para evitar el error que generaría la división entre cero.

La siguiente consulta calcula el margen a partir del coste y el importe de venta.

select margin(ventas,coste) margen;

El código SQL generado es:

SELECT CASE WHEN ventas<>0 THEN 1.0*CASE WHEN ventas IS NOT NULL OR coste IS NOT NULL THEN coalesce(ventas,0)-coalesce(coste,0) END/ventas END AS margen

La siguiente consulta calcula el margen de cada producto durante un periodo determinado:

SELECT
LB_LIBROS.TITULO AS [Título],
sum(LB_VENTAS.PVP) AS Importe,
sum(LB_VENTAS.COSTE) AS Coste,
substraction(importe,coste) Margen,
margin(importe,coste) MargenPct
FROM dbo.LB_VENTAS LB_VENTAS
INNER JOIN dbo.LB_TIEMPO LB_TIEMPO ON (LB_VENTAS.FECHA=LB_TIEMPO.FECHA)
INNER JOIN dbo.LB_LIBROS LB_LIBROS ON (LB_VENTAS.ID_LIBRO=LB_LIBROS.ID_LIBRO)
WHERE LB_TIEMPO.ANYO =2022
GROUP BY LB_LIBROS.TITULO
Ver SQL compilado
SELECT
LB_LIBROS.TITULO AS [Título],
sum(LB_VENTAS.PVP) AS Importe,
sum(LB_VENTAS.COSTE) AS Coste,
CASE WHEN sum(LB_VENTAS.PVP) IS NOT NULL OR sum(LB_VENTAS.COSTE) IS NOT NULL THEN coalesce(sum(LB_VENTAS.PVP),0)-coalesce(sum(LB_VENTAS.COSTE),0) END AS Margen,
CASE WHEN sum(LB_VENTAS.PVP)<>0 THEN 1.0*CASE WHEN sum(LB_VENTAS.PVP) IS NOT NULL OR sum(LB_VENTAS.COSTE) IS NOT NULL THEN coalesce(sum(LB_VENTAS.PVP),0)-coalesce(sum(LB_VENTAS.COSTE),0) END/sum(LB_VENTAS.PVP) END AS MargenPct
FROM dbo.LB_VENTAS
INNER JOIN dbo.LB_TIEMPO ON (LB_VENTAS.FECHA=LB_TIEMPO.FECHA)
INNER JOIN dbo.LB_LIBROS ON (LB_VENTAS.ID_LIBRO=LB_LIBROS.ID_LIBRO)
WHERE LB_TIEMPO.ANYO=2022
GROUP BY LB_LIBROS.TITULO

El margen de venta se calcula dividiendo el margen absoluto entre las ventas. Es la medida de rentabilidad más habitual y no se debe confundir con el markup que se calcula dividiéndolo entre el coste.