Ayuda SAP

Query: Facturas Deudor más Notas de Crédito

Buenas noches colegas

La consulta 1 es de facturas deudor y la consulta 2 es de notas de crédito

Actualmente me da el resultado bajando ambos y colocando en un excel me da el resultado requerido ya que las notas sales en negativo y al aplicar sumatoria en excel estas las resta de las facturas coincidiendo con el reporte nativo de análisis de ventas

Alguien que me pueda apoyar para saber como poder unir estas dos consultas

consulta 1


 SELECT T1.[ItemCode], T1.[Dscription],  sum(T1.[Quantity])'Ventas', T2.[OnHand]'Total Compañia' ,
 
 (select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  ) as STOCK_REAL
 
 FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] 

 
WHERE T0.[CANCELED] ='n' and T0.[DocDate] >=[%0] and  T0.[DocDate] <=[%1] and  T0.[CardCode] not like '05-007251' 
 
 GROUP BY T1.[ItemCode], T1.[Dscription], T2.[OnHand]  ORDER BY T1.[ItemCode]

consulta 2

 SELECT T1.[ItemCode], T1.[Dscription],  sum(T1.[Quantity]*-1)'Ventas', (T2.[OnHand]-T2.[OnHand])'Total Compañia' ,
 
 ((select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  ) -(select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  )) as STOCK_REAL
 
 FROM ORIN T0  INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] 
 
 
 WHERE T0.[CANCELED] ='n' and T0.[DocDate] >=[%0] and  T0.[DocDate] <=[%1] and  T0.[CardCode] not like '05-007251' 
 
 GROUP BY T1.[ItemCode], T1.[Dscription], T2.[OnHand]  ORDER BY T1.[ItemCode]

Hola usa un union all.

SELECT T1.[ItemCode], T1.[Dscription], sum(T1.[Quantity])‘Ventas’, T2.[OnHand]‘Total Compañia’ ,

(select sum(OnHand) from OITW ow where ow.WhsCode NOT IN (‘01’, ‘02’, ‘03’) and ow.ItemCode=t1.ItemCode ) as STOCK_REAL

FROM OINV T0 INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode]

WHERE T0.[CANCELED] =‘n’ and T0.[DocDate] >=[%0] and T0.[DocDate] <=[%1] and T0.[CardCode] not like ‘05-007251’

GROUP BY T1.[ItemCode], T1.[Dscription], T2.[OnHand] ORDER BY T1.[ItemCode]

Union all

SELECT T1.[ItemCode], T1.[Dscription], sum(T1.[Quantity]*-1)‘Ventas’, (T2.[OnHand]-T2.[OnHand])‘Total Compañia’ ,

((select sum(OnHand) from OITW ow where ow.WhsCode NOT IN (‘01’, ‘02’, ‘03’) and ow.ItemCode=t1.ItemCode ) -(select sum(OnHand) from OITW ow where ow.WhsCode NOT IN (‘01’, ‘02’, ‘03’) and ow.ItemCode=t1.ItemCode )) as STOCK_REAL

FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode]

WHERE T0.[CANCELED] =‘n’ and T0.[DocDate] >=[%0] and T0.[DocDate] <=[%1] and T0.[CardCode] not like ‘05-007251’

GROUP BY T1.[ItemCode], T1.[Dscription], T2.[OnHand] ORDER BY T1.[ItemCode]

Recuerda que los campos de cada consulta debe de proyectar el mismo nombre y tipo de dato.

2 Me gusta

Hola, que tal gracias por la ayuda de hecho y intente con el union all y me arroja error menciona algo sobre el grupo by, separados funcionan sin problema los parámetros para resultado son los mismos para ambas consultas solo realice modificación ala tablas y para el negativo en la Rin1 tendrás alguna otra idea para este tema?

Hola, haz el union como lo tienes y un select que una ambos, asi te deberia dar el resultado correcto, si no te da me dices para que lo miremos, solo que en este momento estoy desde el celular

Erik, por favor contanos más, qué hacen estas consultas?
Para qué sirven?
El foro no es para poner un titulo que diga “unir dos querys” y sin más explicación el código.
Ayudanos a darle calidad al debate :pray:

Hola buen día SidV, la consulta 1 es de facturas deudor y la consulta 2 es de notas de crédito

Actualmente me da el resultado bajando ambos y colocando en un excel me da el resultado requerido ya que las notas sales en negativo y al aplicar sumatoria en excel estas las resta de las facturas coincidiendo con el reporte nativo de análisis de ventas

Que tal gracias por tu apoyo no me sale algo debo estar realizando mal me arroja el error de la sintaxis

Amigo…

cuando creas las consultas con Union All debes tener en consideración un par de detalles:

  1. Ambas consultas deben tener el mismo numero de campos y el mismo tipo de campos en la misma posición.
  2. Los nombres de los campos deben ser los mismos en el mismo orden.
  3. Para SQL, tooooodo el query (a pesar que lo tienes separados en varios querys unidos por cada Union All), es un solo query. Por consiguiente solo debes colocar el Group by al final, no en cada query interno.
Select...
From 
t0
Union All
Select....
From 
T1

Group by
4 Me gusta

Buen día,

Así lo pude ejecutar:

SELECT	T1.[ItemCode], T1.[Dscription],  sum(T1.[Quantity])'Ventas', T2.[OnHand]'Total Compañia' ,
		(select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  ) as STOCK_REAL
		
FROM	OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] 
		
WHERE	T0.[CANCELED] ='n' and T0.[DocDate] >=[%0] and  T0.[DocDate] <=[%1] and T0.[CardCode] not like '05-007251' 
 
GROUP	BY T1.[ItemCode], T1.[Dscription], T2.[OnHand]  

UNION ALL

SELECT	T1.[ItemCode], T1.[Dscription],  sum(T1.[Quantity]*-1)'Ventas', (T2.[OnHand]-T2.[OnHand])'Total Compañia' ,
		((select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  ) -(select sum(OnHand) from OITW ow where ow.WhsCode NOT IN ('01', '02', '03') and ow.ItemCode=t1.ItemCode  )) as STOCK_REAL
 
FROM	ORIN T0  INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] 
  
WHERE	T0.[CANCELED] ='n' and T0.[DocDate] >=[%0] and  T0.[DocDate] <=[%1] and T0.[CardCode] not like '05-007251' 
 
GROUP	BY T1.[ItemCode], T1.[Dscription], T2.[OnHand]  ORDER BY T1.[ItemCode]

Saludos.

2 Me gusta

Gracias colega lo revisaré en unos minutos

Se agradece el apoyo

Si no te da por favor nos dices, haber como mas te podemos apoyar

Listo colegas ya marque la solucion , es un query muy funcional

1 me gusta

Puedo hacerte una pregunta, ya que quede con una inquietud muy grande, cual es la finalidad de esta consulta? Que resultado estas mostrando aquí? Gracias, es simple curiosidad

Se busca un análisis de ventas pero omitir un cliente interno así mismo mostrar el stock de ciertos almacenes unicamente

Por eso tiene las ventas de la oinv y las notas de crédito de la orín en negativo para obtener el resultado que arroja el análisis de ventas nativo