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.

Crono SQL verifica que el denominador no sea cero para evitar el error que generaría la división entre cero.
Ejemplos
Sección titulada «Ejemplos»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 margenLa 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) MargenPctFROM dbo.LB_VENTAS LB_VENTASINNER 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 =2022GROUP BY LB_LIBROS.TITULOVer 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 MargenPctFROM dbo.LB_VENTASINNER 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=2022GROUP BY LB_LIBROS.TITULOComentario
Sección titulada «Comentario»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.