SQL - Suma Algebraica de 2 Select SQL Server 2012

 
Vista:
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (1 intervención) el 08/09/2017 16:14:06
Buenos Días, tengo los siguientes Select en SQL Server 2012, y necesito hacer una suma algebraica de ambos Select ya que el resultado de cada uno me da valores positivos y negativos.

SELECT T0.U_CTS_Vendedor, T5.[U_CTS_Cedula],T5.[U_CTS_Tienda],T5.[U_CTS_Cargo],T5.SLPNAME, T1.[U_bgn_grupoarticulo], SUM(T1.[Quantity]) AS CANTIDAD, SUM(T1.[LineTotal]) AS TOTAL FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode LEFT JOIN OSLP T5 ON T5.U_CTS_VENDEDORPOS = T0.U_CTS_Vendedor
WHERE ( T0.[DocDate] >= '[%1]' OR '[ %1]'=' ') and (T0.[DocDate] <= '[%2]' OR '[%2]'=' ')
GROUP BY T5.[U_CTS_Tienda], T5.SLPNAME,T5.[U_CTS_Cedula],T0.U_CTS_Vendedor,T5.[U_CTS_Cargo],T1.[U_bgn_grupoarticulo]

UNION ALL

SELECT T0.U_CTS_Vendedor,T5.[U_CTS_Cedula],T5.[U_CTS_Tienda],T5.[U_CTS_Cargo], T5.SLPNAME, T1.[U_bgn_grupoarticulo],SUM((T1.[Quantity]*(-1))) AS CANTIDAD, SUM((T1.[LineTotal]*(-1))) AS TOTAL FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode LEFT JOIN OSLP T5 ON T5.U_CTS_VENDEDORPOS = T0.U_CTS_Vendedor
WHERE ( T0.[DocDate] >= '[%1]' OR '[ %1]'=' ') and (T0.[DocDate] <= '[%2]' OR '[ %2]'=' ')
GROUP BY T5.[U_CTS_Tienda], T5.SLPNAME,T5.[U_CTS_Cedula],T0.U_CTS_Vendedor,T5.[U_CTS_Cargo],T1.[U_bgn_grupoarticulo]
ORDER BY T5.[U_CTS_Tienda],T5.SLPNAME,T1.[U_bgn_grupoarticulo]


El resultado de estos Select es el siguiente:

T-010122 V20026844 T-01 5 PEDRO ROPA 3 30.000
T-010122 V20026844 T-01 5 PEDRO ROPA -1 10.000




Necesito que se vea así:


T-010122 V20026844 T-01 5 PEDRO ROPA 2 20.000


Agradecería mucho su ayuda :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Isaias (1921 intervenciones) el 08/09/2017 17:28:51
Ambas consultas son EXACTAMENTE iguales, solo que a una la multiplica por -1, ¿porque hacerlas por separado y no utilizar un CASE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (5 intervenciones) el 10/09/2017 13:00:48
Buenos dias, tuve que crear otra cuanta porque no me dejaba validar la mia.

En realidad no se como hacerlo como indicas ya que no soy experto en SQL, recien me estoy iniciando y es un Query que arme con ayuda de SAP BS1, pero necesito mostrarlo como indique.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2017 16:01:28
¿Cual es la CONDICION para multiplicar la suma por -1?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (5 intervenciones) el 11/09/2017 17:15:45
No es una condición como tal, solo que ese Select representa Notas de Crédito por eso arroja valores negativos.

Me han comentado que otra posible solución pueda ser meter ambos Select dentro de otro Select, pero no e podido hacerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2017 18:04:50
Tienes 4 tablas que diferencian a las consultas

OINV - ORIN
INV1 - RIN1

¿Existe alguna relacion entre estas tablas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (5 intervenciones) el 11/09/2017 18:14:46
Facturas

OINV = Cabecera de la Factura (Datos del Vendedor, etc)
INV1= Detalle de la Factura (Producto, Cantidad, Costo, etc)

Entre estas Existe relación

Notas de Crédito

ORIN = Cabecera de la Nota de Crédito (Datos del Vendedor, etc)
RIN1 = Detalle de la Nota de Credito (Producto, Cantidad, Costo, etc)

Entre estas Existe relación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2017 18:58:01
¿Y entre las CUATRO hay alguna relacion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (5 intervenciones) el 11/09/2017 21:48:38
Disculpe, estaba revisando. Si existe relación entre las 4 también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2017 23:59:32
¿Como se relacionan?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Suma Algebraica de 2 Select SQL Server 2012

Publicado por Johan (5 intervenciones) el 13/09/2017 15:06:38
Gracias por la ayuda :D ya pude resolverlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SELECT
 
SUMA.U_CTS_Vendedor AS CODIGO_VENDEDOR,
SUMA.[U_CTS_Tienda] AS TIENDA,
SUMA.SLPNAME AS VENDEDOR,
SUMA.[U_CTS_Cedula] AS CEDULA,
SUMA.[U_CTS_Cargo] AS CARGO,
SUMA.[U_bgn_grupoarticulo] AS RUBRO,
SUM(SUMA.CANTIDAD) AS CANTIDAD,
SUM(SUMA.TOTAL) AS TOTAL
 
FROM
 
(
 
SELECT T0.U_CTS_Vendedor, T5.[U_CTS_Cedula],T5.[U_CTS_Tienda],T5.[U_CTS_Cargo],T5.SLPNAME, T1.[U_bgn_grupoarticulo], SUM(T1.[Quantity]) AS CANTIDAD, SUM(T1.[LineTotal]) AS TOTAL FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode LEFT JOIN OSLP T5 ON T5.U_CTS_VENDEDORPOS = T0.U_CTS_Vendedor
WHERE ( T0.[DocDate] >= '2017-09-01' OR '2017-09-01'=' ') and (T0.[DocDate] <= '2017-09-01' OR '2017-09-01'=' ')
GROUP BY T5.[U_CTS_Tienda], T5.SLPNAME,T5.[U_CTS_Cedula],T0.U_CTS_Vendedor,T5.[U_CTS_Cargo],T1.[U_bgn_grupoarticulo]
 
UNION ALL
SELECT T0.U_CTS_Vendedor,T5.[U_CTS_Cedula],T5.[U_CTS_Tienda],T5.[U_CTS_Cargo], T5.SLPNAME, T1.[U_bgn_grupoarticulo],SUM((T1.[Quantity]*(-1))) AS CANTIDAD, SUM((T1.[LineTotal]*(-1))) AS TOTAL FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode LEFT JOIN OSLP T5 ON T5.U_CTS_VENDEDORPOS = T0.U_CTS_Vendedor
WHERE ( T0.[DocDate] >= '2017-09-01' OR '2017-09-01'=' ') and (T0.[DocDate] <= '2017-09-01' OR '2017-09-01'=' ')
GROUP BY T5.[U_CTS_Tienda], T5.SLPNAME,T5.[U_CTS_Cedula],T0.U_CTS_Vendedor,T5.[U_CTS_Cargo],T1.[U_bgn_grupoarticulo]
 
) AS SUMA
 
GROUP BY SUMA.[U_CTS_Tienda], SUMA.SLPNAME,SUMA.[U_CTS_Cedula],SUMA.U_CTS_Vendedor,SUMA.[U_CTS_Cargo],SUMA.[U_bgn_grupoarticulo]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar