Último precio de compra por artículo

El precio, proveedor y fecha de la factura de proveedores más reciente para cada artículo.

Tablas: OPCH, PCH1Uso: Revisión de precios antes de nuevos pedidos de compra.

Herramienta

SELECT X.ItemCode, X.Dscription, X.Price, X.Currency, X.CardName, X.DocDate
FROM (
  SELECT T1.ItemCode, T1.Dscription, T1.Price, T1.Currency, T0.CardName, T0.DocDate,
    ROW_NUMBER() OVER (PARTITION BY T1.ItemCode ORDER BY T0.DocDate DESC, T0.DocEntry DESC) AS RowNo
  FROM OPCH T0
  INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry
  WHERE T0.CANCELED = 'N'
) X
WHERE X.RowNo = 1
ORDER BY X.ItemCode
¿Necesita sus UDF en este reporte, o un dashboard? Lo adaptamos para su empresa.Personalizarla →

Qué responde esta consulta

Antes de aprobar un nuevo pedido de compra, el gerente de compras quiere ver cuánto se pagó la última vez por cada artículo, a quién y cuándo. Así detecta aumentos de precio que el proveedor no anunció.

Ejemplo de resultado

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

ItemCodeDscriptionPriceCurrencyCardNameDocDate
A00001Laser Printer 1420410USDGlobal Parts Co.2026-09-14
A00005Toner Cartridge Black27.5USDGlobal Parts Co.2026-10-02
A00007Paper A4 Box6.9EURMetro Packaging2026-08-21
A00009USB Cable 2m2.4USDGlobal Parts Co.2026-07-30

SQL Server vs SAP HANA

ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) funciona igual en HANA, así que la función de ventana no se toca. El único cambio son las comillas, incluido el alias interno "RowNo" por el que filtra el WHERE exterior.

Errores comunes y soluciones

  • Se comparan lado a lado precios en distintas monedas: Price está en la moneda de la línea de la factura, que se muestra en la columna Currency. Compare solo filas con la misma moneda, o use T1.LineTotal / T1.Quantity para un precio unitario en moneda local.
  • Faltan artículos que se compraron hace poco: Solo se leen facturas de proveedores (OPCH). Si la mercadería se recibe con un pedido de entrada de mercancías y se factura después, lea OPDN/PDN1 en su lugar o agréguelas con UNION ALL.
  • El precio es menor que el de la lista de precios del proveedor: PCH1.Price es el precio unitario después del descuento de línea. Seleccione también T1.PriceBefDi para ver el precio antes del descuento.
Compras

Consultas relacionadas

Referencia de tablas: Tabla OPCH (Factura de proveedores (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 «Último precio de compra por artículo» 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 OPCH, PCH1 del esquema estándar de SAP Business One. No necesita campos definidos por el usuario.

¿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.