Ventas por cliente en un rango de fechas

Ventas netas por cliente (facturas menos notas de crédito) entre dos fechas, de mayor a menor.

Tablas: OINV, ORINUso: Reuniones mensuales de ventas, ranking de clientes y control de comisiones.Parámetros: [%0] = fecha desde, [%1] = fecha hasta

Herramienta

SELECT X.CardCode, X.CardName, SUM(X.NetSales) AS NetSales
FROM (
  SELECT T0.CardCode, T0.CardName, T0.DocTotal - T0.VatSum AS NetSales
  FROM OINV T0
  WHERE T0.CANCELED = 'N' AND T0.DocDate BETWEEN '[%0]' AND '[%1]'
  UNION ALL
  SELECT T1.CardCode, T1.CardName, -(T1.DocTotal - T1.VatSum)
  FROM ORIN T1
  WHERE T1.CANCELED = 'N' AND T1.DocDate BETWEEN '[%0]' AND '[%1]'
) X
GROUP BY X.CardCode, X.CardName
ORDER BY NetSales DESC
¿Necesita sus UDF en este reporte, o un dashboard? Lo adaptamos para su empresa.Personalizarla →

Qué responde esta consulta

Antes de la reunión mensual de ventas, el gerente comercial quiere una sola lista de clientes ordenada por lo que realmente compraron en el período. Las devoluciones cuentan: un cliente al que se le facturaron 50.000 y luego se le emitió una nota de crédito por 20.000 debe aparecer con 30.000, no con 50.000.

¿Lo quiere como un gráfico que su equipo pueda filtrar? Vea cómo crear un dashboard de SAP Business One sin Power BI.

Ejemplo de resultado

Valores de demostración ilustrativos. Sus columnas son las mismas; los números vienen de su empresa.

CardCodeCardNameNetSales
C20000Acme Trading48250
C30000Northwind Retail31720.5
C40000Blue Harbor Foods18900
C50000Summit Supplies6410.75

SQL Server vs SAP HANA

La lógica es idéntica; la versión HANA solo encierra cada columna y alias entre comillas dobles (T0."DocTotal", AS "NetSales"), porque HANA convierte a mayúsculas los nombres sin comillas. La columna negativa sin nombre en la segunda parte del UNION funciona en ambas bases de datos, porque los nombres de columna se toman del primer SELECT.

Errores comunes y soluciones

  • Las facturas canceladas siguen cambiando los totales: Mantenga CANCELED = 'N' en ambas partes. En SAP B1 una factura cancelada recibe CANCELED = 'Y' y su nota de crédito de cancelación recibe CANCELED = 'C'; al filtrar por 'N' se excluyen las dos, así no se compensan entre sí por accidente.
  • Conversion failed when converting date and/or time from character string: Si prueba la consulta fuera de SAP B1, reemplace '[%0]' y '[%1]' por fechas en formato AAAAMMDD (por ejemplo '20261001'), que SQL Server interpreta igual sin importar la configuración de idioma.
  • Los totales no coinciden con el estado de cuenta del cliente en moneda extranjera: DocTotal y VatSum están en moneda local. Use DocTotalFC - VatSumFC en ambas partes del UNION para ordenar a los clientes en la moneda del documento.
  • Los totales no cuadran con el reporte de Análisis de ventas (descuento de cabecera): Esta consulta lee DocTotal - VatSum de la cabecera del documento, que ya incluye el descuento de cabecera (OINV.DiscPrcnt) y además el flete. Si la cambia para sumar INV1.LineTotal, por ejemplo para ingresos por artículo, el descuento de cabecera no está dentro de LineTotal y la suma de líneas sobrestima las ventas. Use SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) (HANA: SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0))) y reste las notas de crédito de clientes (ORIN/RIN1) con el mismo factor. Vea Totales de ventas que no cuadran en SAP B1: solución del descuento de cabecera.
Ventas

Consultas relacionadas

Referencia de tablas: Tabla OINV (Factura de clientes (cabecera)) · Tabla ORIN (Nota de crédito de clientes (cabecera))

Cómo funciona

Tres pasos, sin registro

1

Copie la versión correcta

Use la pestaña SQL Server para bases de datos MS SQL y la pestaña HANA para SAP B1 sobre HANA.

2

Abra el generador de consultas

En SAP Business One vaya a Herramientas → Consultas → Generador de consultas (Tools → Queries → Query Generator), pegue la consulta y haga clic en Ejecutar.

3

Guarde y comparta

Haga clic en Grabar, elija una categoría y asigne un nombre a la consulta. Su equipo podrá ejecutarla desde el gestor de consultas (Query Manager).

Preguntas

Preguntas sobre esta herramienta

¿Cómo ejecuto la consulta «Ventas por cliente en un rango de fechas» en SAP Business One?

Copie la versión que corresponde a su base de datos, abra Herramientas → Consultas → Generador de consultas, péguela en el cuadro SQL y haga clic en Ejecutar. Grábela para reutilizarla después.

¿Qué tablas usa esta consulta?

Lee OINV, ORIN del esquema estándar de SAP Business One. No necesita campos definidos por el usuario.

¿Qué debo ingresar cuando se abre la ventana de selección?

Esta consulta usa parámetros: [%0] = fecha desde, [%1] = fecha hasta. SAP B1 muestra una ventana de selección para cada uno al ejecutarla.

¿Se puede convertir en un dashboard o una alerta?

Sí. Convertimos consultas en reportes de Crystal Reports, reportes de Excel que se actualizan solos, alertas de SAP B1 o mensajes de WhatsApp para gerentes.

¿Lo necesita dentro de SAP Business One?

Desarrollamos add-ons, reportes e integraciones para SAP B1 en SQL Server y HANA. Cuéntenos qué necesita y reciba un precio fijo, normalmente en 24 horas.