Top 20 artículos más vendidos
Los artículos más vendidos por valor de venta, con la cantidad vendida, en un rango de fechas.
Herramienta
SELECT TOP 20 T1.ItemCode, T1.Dscription AS ItemName, SUM(T1.Quantity) AS QtySold, SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) AS SalesValue FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.CANCELED = 'N' AND T0.DocDate BETWEEN '[%0]' AND '[%1]' GROUP BY T1.ItemCode, T1.Dscription ORDER BY SalesValue DESC
SELECT TOP 20 T1."ItemCode", T1."Dscription" AS "ItemName", SUM(T1."Quantity") AS "QtySold", SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0)) AS "SalesValue" FROM OINV T0 INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."CANCELED" = 'N' AND T0."DocDate" BETWEEN '[%0]' AND '[%1]' GROUP BY T1."ItemCode", T1."Dscription" ORDER BY "SalesValue" DESC
Qué responde esta consulta
El equipo de compras está planificando las compras del próximo trimestre y quiere saber qué 20 artículos generaron más ingresos en el último período, y cuántas unidades se necesitaron para ello. Responde qué productos merecen prioridad de stock y cuáles son solo ruido.
Ejemplo de resultado
Valores de demostración ilustrativos. Sus columnas son las mismas; los números vienen de su empresa.
| ItemCode | ItemName | QtySold | SalesValue |
|---|---|---|---|
| A00001 | Laser Printer 1420 | 42 | 25200 |
| A00005 | Toner Cartridge Black | 310 | 13950 |
| A00012 | Wireless Keyboard | 185 | 7400 |
| A00007 | Paper A4 Box | 520 | 5720 |
SQL Server vs SAP HANA
SELECT TOP 20 se mantiene tal cual, porque SAP HANA también acepta TOP n (LIMIT 20 al final también funcionaría). Todo lo demás es el uso de comillas en los identificadores, incluido el alias "SalesValue" que se usa en ORDER BY.
Errores comunes y soluciones
- Invalid column name 'Description': En SAP B1 la columna de descripción de la línea se escribe Dscription (sin la 'e'). Use T1.Dscription tanto en el SELECT como en el GROUP BY.
- El mismo artículo aparece dos veces en el top 20: La consulta agrupa por la descripción de la línea, así que un artículo cuyo nombre se editó en algunas facturas se divide en dos filas. Agrupe solo por T1.ItemCode y haga un join con OITM para obtener el ItemName actual.
- No se descuentan las devoluciones: Solo se leen las facturas de clientes (INV1). Agregue un UNION ALL de RIN1/ORIN con Quantity y LineTotal negativos si las devoluciones son importantes en su negocio.
- Los totales no cuadran con el reporte de Análisis de ventas (descuento de cabecera): Un descuento ingresado en la cabecera del documento (OINV.DiscPrcnt) no está dentro de INV1.LineTotal, por eso un SUM(T1.LineTotal) simple sobrestima las ventas. La consulta de arriba lo aplica: SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) (HANA: SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0))). Las notas de crédito de clientes (ORIN/RIN1) deben restarse con el mismo factor, usando ORIN.DiscPrcnt. Vea Totales de ventas que no cuadran en SAP B1: solución del descuento de cabecera.
Consultas relacionadas
Referencia de tablas: Tabla OINV (Factura de clientes (cabecera)) · Tabla INV1 (Factura de clientes (líneas))
Tres pasos, sin registro
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.
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.
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 sobre esta herramienta
¿Cómo ejecuto la consulta «Top 20 artículos más vendidos» 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, INV1 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.
Hechas para equipos de SAP Business One
¿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.
