Ayuda SAP

Diferencias en query Análisis de Ventas

Un saludo para todos,

Recurro nuevamente a su ayuda dado que estoy teniendo inconvenientes con un query que me muestra el acumulado mes a mes de ventas por cada empleado de ventas, estoy teniendo diferencias si lo comparo con el análisis de ventas nativo de SAP.

El motivo por el cual recurro al query es que debo añadirle unos campos adicionales que me pidió el área de contabilidad, uno de ellos sería el costo acumulado de las facturas mes a mes.

No he podido encontrar el causante de las diferencias entre los informes, por lo que recurro a su ayuda para poder solucionar este problema.

Adjunto query:

SELECT T0.SlpCode, T0.SlpName,
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 1 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 1 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Enero',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 2 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 2 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Febrero',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 3 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 3 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Marzo',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 4 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 4 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Abril',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 5 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 5 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Mayo',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 6 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 6 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Junio',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 7 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 7 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Julio',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 8 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 8 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Agosto',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 9 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 9 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Septiembre',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 10 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 10 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Octubre',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 11 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 11 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Noviembre',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE MONTH(T.DocDate) = 12 AND YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE MONTH(Y.DocDate) = 12 AND YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Diciembre',
ISNULL((SELECT SUM(T.DocTotal-T.Vatsum) FROM OINV T WHERE YEAR(T.DocDate)=2020 AND T.SlpCode = T0.SlpCode),0)-ISNULL((SELECT SUM(Y.DocTotal-Y.Vatsum) FROM ORIN Y WHERE YEAR(Y.DocDate)=2020 AND Y.SlpCode = T0.SlpCode),0)'Acumulado 2020'
FROM OSLP T0
ORDER BY T0.SlpCode

Un saludo y muchas gracias.

Hola.

De entrada agregaría una cláusula en el Where: T.Canceled = ‘N’

Al igual en las notas de crédito.

A no ser que en tu empresa no utilicen la función de cancelar.

Saludos. :wink:

1 me gusta

Muchas gracias por tu respuesta,
Lo que me intriga es que si la diferencia fuera por las facturas canceladas, el query debería dar más que el análisis de ventas nativo de SAP (¿o me equivoco?) pero es todo lo contrario, da menos.

EDITO:

Me informan de contabilidad que para facturas no usamos esa opción de cancelar, en caso de una devolución o un cambio de factura se hace nota crédito.

1 me gusta

Si, es correcto, creo que no leí en qué reporte te muestra de más, una disculpa.

Mira, te doy un pequeño consejo… Aisla un escenario. Genera tu análisis de ventas de un solo cliente/agente y agrega ese cliente/agente en el Where de tus subconsultas. Si la diferencia persiste, aisla el escenario a un detalle mayor: Por una sola factura, etc. De esta manera podrás detectar de manera fácil que dato te está haciendo falta analizar.

Te doy el consejo anterior ya que se me viene a la mente muchos escenarios… por ejemplo el manejo de anticipos, rendondeos, etc.

Espero haberte ayudado aunque sea un poco.

Sigo atento. :wink:

2 Me gusta

@Gera_Mendez Muchas gracias, empezaré haciendo las pruebas que mencionas, estaré informando si encuentro el causante de las diferencias.

Saludos!

1 me gusta