¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Integración de facturas y notas de crédito en SAP: análisis de ventas y diferencias en totales.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...

Buenos días a todos en el foro.

He estado haciendo algunas pruebas para integrar las facturas y notas de crédito mediante el código que dejo al final, sin embargo, se ven algunas diferencias que no comprendo el porqué de ellas.

Cada código lo he ejecutado de manera independiente y luego lo he enlazado con Union all para que me dé los resultados tal como los veo en Análisis de ventas: artículos: total por grupos, pero veo diferencias en los totales.

Esta es la imagen de la tabla INV1.

SELECT T4.[ItmsGrpNam], SUM(T2.[LineTotal]) FROM OSLP T0 INNER JOIN OINV T1 ON T0.SlpCode = T1.SlpCode INNER JOIN INV1 T2 ON T1.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OITB T4 ON T3.ItmsGrpCod = T4.ItmsGrpCod WHERE T1.[DocDate] Between [%0] and [%1] GROUP BY T4.[ItmsGrpNam]

Esta es la imagen de la tabla RIN1.

SELECT T4.[ItmsGrpNam], SUM(-(T2.[LineTotal])) FROM OSLP T0 INNER JOIN ORIN T1 ON T0.SlpCode = T1.SlpCode INNER JOIN RIN1 T2 ON T1.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OITB T4 ON T3.ItmsGrpCod = T4.ItmsGrpCod WHERE T1.[DocDate] Between [%0] and [%1] GROUP BY T4.[ItmsGrpNam]

Finalmente, la imagen del Union all de los dos códigos anteriores pero con resultados diferentes a los esperados. Lo que se pretende es que la sumatoria de ambas tablas, siendo negativo el valor de RIN1, me dé el valor neto de la venta por grupo.

El indicador rojo es porque el grupo se repite, los indicadores azules es donde hubo una nota de crédito que no está siendo aplicada correctamente en esta sumatoria.

Gracias por la ayuda.

Saludos.

Suma INV1.JPG Suma Union all.JPG
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Andrés, gracias por tu aporte.

La consulta se ejecuta correctamente, sin embargo, el resultado parece corresponder a un año en lugar del rango ingresado.

En otro intento, se mostraron más datos en las notas de crédito de lo que corresponde.

Realicé las primeras pruebas, estaré investigando qué puede estar causando este problema.

Saludos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Marco, supongo que este código te puede servir, lo hice un poco de afán pero creo que la lógica es correcta para que la pruebes en el Query manager:

/* Select From [DBO].[OINV] T0 */

Declare @FechaIni as DateTime

Declare @FechaFin as DateTime

/* Where */

Set Dateformat DMY

Set @FechaIni = /* T0.DocDate */ '[%0]'

Set @FechaFin = /* T0.DocDate */ '[%1]'

Select T0.ItmsGrpNam,

Sum(T1.LineTotal) 'Factura',

Sum(T2.LineTotal) 'Nota_Credito',

Sum(T1.LineTotal) - Sum(T2.LineTotal) 'Total'

From OITB T0

Inner Join

(

Select T3.ItmsGrpNam, T1.LineTotal

From OINV T0

Inner Join INV1 T1 On T0.DocEntry = T1.DocEntry

Inner Join OITM T2 On T1.ItemCode = T2.ItemCode

Inner Join OITB T3 On T2.ItmsGrpCod = T3.ItmsGrpCod

Where T0.DocDate Between @FechaIni And @FechaFin

)T1 On T0.ItmsGrpNam = T1.ItmsGrpNam

Inner Join

(

Select T3.ItmsGrpNam, T1.LineTotal

From ORIN T0

Inner Join RIN1 T1 On T0.DocEntry = T1.DocEntry

Inner Join OITM T2 On T1.ItemCode = T2.ItemCode

Inner Join OITB T3 On T2.ItmsGrpCod = T3.ItmsGrpCod

Where T0.DocDate Between @FechaIni And @FechaFin

)T2 On T0.ItmsGrpNam = T2.ItmsGrpNam

Group By T0.ItmsGrpNam

Order By T0.ItmsGrpNam

Saludos,

Andrés

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Felipe, ¡quedó genial!

Gracias.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Prueba esto:

SELECT T0.Grupo, SUM(T0.Venta)FROM (SELECT T4.[ItmsGrpNam] AS Grupo,SUM(T2.[LineTotal]) AS Venta FROM OSLP  T0   INNER JOIN OINV  T1 ON T0.SlpCode = T1.SlpCode   INNER JOIN INV1  T2 ON T1.DocEntry = T2.DocEntry   INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode   INNER JOIN OITB T4 ON T3.ItmsGrpCod = T4.ItmsGrpCod  WHERE T1.[DocDate] Between '[%0]' and '[%1]' GROUP BY T4.[ItmsGrpNam]UNION ALLSELECT   T4.[ItmsGrpNam] AS Grupo ,SUM(-(T2.[LineTotal])) AS Venta FROM OSLP T0   INNER JOIN ORIN T1 ON T0.SlpCode = T1.SlpCode   INNER JOIN RIN1 T2 ON T1.DocEntry = T2.DocEntry   INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode   INNER JOIN OITB T4 ON T3.ItmsGrpCod = T4.ItmsGrpCod  WHERE T1.[DocDate] Between '[%0]' and '[%1]' GROUP BY T4.[ItmsGrpNam]) T0GROUP BY T0.Grupo

Saludos

Felipe

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?