Como unir Factur y NC en un solo total por cliente

Hola buenas tardes:

Agradezco quien pueda ayudarme con este Query, tengo 2 consultas unidas por UNION ALL que reflejan cajas y valor venta tanto + como -, sinembargo necesito que se sumen y muestren un solo valor por cliente. Ya pude hacerlo si solo uso la tabla OINV y ORIN, pero si incluyo las tablas INV y RIN1 ya no me funciona la subconsulta, que estoy haciendo mal? su ayuda por favor, gracias!!!

SELECT T0.“CardCode”, T0.“CardName”, SUM(T1.“Quantity”), SUM(T1.“LineTotal”) FROM

(SELECT T0.“CardCode”, T0.“CardName”, SUM(T1.“Quantity”), SUM(T1.“LineTotal”)
FROM OINV T0 INNER JOIN INV1 T1 ON T0.“DocEntry” = T1.“DocEntry”
WHERE MONTH( T0.“DocDate” ) = ‘2’ AND T0.“CardCode” = ‘NAMXALR’
GROUP BY T0.“CardCode”, T0.“CardName”, T0.“CardName”, MONTH(T0.“DocDate”)

UNION ALL

SELECT T0.“CardCode”, T0.“CardName”, SUM(-T1.“Quantity”), SUM(-T1.“LineTotal”)
FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.“DocEntry” = T1.“DocEntry”
WHERE MONTH( T0.“DocDate” ) = ‘2’ AND T0.“CardCode” = ‘NAMXALR’
GROUP BY T0.“CardCode”, T0.“CardName”, T0.“CardName”, MONTH(T0.“DocDate”)) T0

Hola buenas.

Al usar union all, no te va a salir nunca agrupado, te saldría lo positivo por un lado y lo negativo por otro.

Si creas una vista con esta consulta, luego podrás repetir el group by en la select de la vista logrando el objetivo.

Gracias meqs, estuve buscando como hacer vistas en SAB B1 y no encuentro como hacerlo, mis conocimientos son basicos, necesito otra opcion de solucion.

Ya encontré la solución, solo debí incluir al final GROUP BY, con esta consulta ya puedo sumar por cliente las NC y FACTURAS

SELECT T0.“CardCode”, T0.“CardName”, SUM(T0.“Quantity”), SUM(T0.“LineTotal”)
FROM (
SELECT T0.“CardCode”, T0.“CardName”, SUM(T1.“Quantity”) AS “Quantity”, SUM(T1.“LineTotal”) AS “LineTotal”
FROM OINV T0
INNER JOIN INV1 T1 ON T0.“DocEntry” = T1.“DocEntry”
GROUP BY T0.“CardCode”, T0.“CardName”, MONTH(T0.“DocDate”)

UNION ALL

SELECT T0."CardCode", T0."CardName", SUM(-T1."Quantity") AS "Quantity", SUM(-T1."LineTotal") AS "LineTotal"
FROM ORIN T0  
INNER JOIN RIN1 T1 ON T0."DocEntry" = T1."DocEntry" 
GROUP BY T0."CardCode", T0."CardName", MONTH(T0."DocDate")

) T0
GROUP BY T0.“CardCode”, T0.“CardName”

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.