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]
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.
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
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
cuando creas las consultas con Union All debes tener en consideración un par de detalles:
Ambas consultas deben tener el mismo numero de campos y el mismo tipo de campos en la misma posición.
Los nombres de los campos deben ser los mismos en el mismo orden.
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
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]
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