SQL - sumar resultado de 2 consultas

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

sumar resultado de 2 consultas

Publicado por jose juan (5 intervenciones) el 22/02/2017 19:25:45
Hola les cuento tengo una pequeña duda necesito saber si puedo sumar el resultado de dos consultas unidas por UNION, les muestro la consulta:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use practicas
select CNOMBREP01,SUM(cunidades)as mesprueba from MGW10010
full join MGW10005 on (MGW10005.CIDPRODU01 = MGW10010.CIDPRODU01)
full join MGW10008 on (MGW10008.CIDDOCUM01 = MGW10010.CIDDOCUM01)
where (MGW10008.CFECHA between  '2017-01-1' and '2017-01-31')
/*and CNOMBREP01 = 'JALADERA COBRE MATE                                         '*/
group by CNOMBREP01
 
union all
 
select CNOMBREP01,SUM(cunidades)as mesprueba from MGW10010_2016
full join MGW10005 on (MGW10005.CIDPRODU01 = MGW10010_2016.CIDPRODU01)
full join MGW10008_2016 on (MGW10008_2016.CIDDOCUM01 = MGW10010_2016.CIDDOCUM01)
where (MGW10008_2016.CFECHA between  '2016-01-1' and '2016-01-31')
group by CNOMBREP01

el resultado que arroja es así:

CHAPETON NIQUEL ANTIGUO 40.00
CHAPETON LLAMADOR DE ACERO RÚSTICO NEGRO 2025.00
JALADERA TUBULAR/ZAMAC 123MM NIQUEL RAYADO 900.00
CHAPETON COBRE MATE 433.00
98-09972-D-00 WOODCRAFTERS 530414-C / TUBO CROMO 25.375" 1500.00
CHAPETON NIQUEL ANTIGUO 40.00
CHAPETON LLAMADOR DE ACERO RÚSTICO NEGRO 2025.00
JALADERA TUBULAR/ZAMAC 123MM NIQUEL RAYADO 900.00
CHAPETON COBRE MATE 433.00
98-09972-D-00 WOODCRAFTERS 530414-C / TUBO CROMO 25.375" 1500.00
CHAPETON NIQUEL ANTIGUO 40.00
CHAPETON LLAMADOR DE ACERO RÚSTICO NEGRO 2025.00
JALADERA TUBULAR/ZAMAC 123MM NIQUEL RAYADO 900.00
CHAPETON COBRE MATE 433.00
98-09972-D-00 WOODCRAFTERS 530414-C / TUBO CROMO 25.375" 1500.00
CHAPETON NIQUEL ANTIGUO 40.00
CHAPETON LLAMADOR DE ACERO RÚSTICO NEGRO 2025.00
JALADERA TUBULAR/ZAMAC 123MM NIQUEL RAYADO 900.00
CHAPETON COBRE MATE 433.00
98-09972-D-00 WOODCRAFTERS 530414-C / TUBO CROMO 25.375" 1500.00


y lo que quiero es que cuando se repitan los mismos nombres, los resultados se sumen
como podía hacerlo, soy nuevo en esto y espero que me puedan ayudar
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

sumar resultado de 2 consultas

Publicado por leonardo_josue (1173 intervenciones) el 22/02/2017 20:08:01
Hola José Juan...

Lo que puedes hacer es primero unir tus datos y después aplicar una única agrupación, es decir, hacer más o menos lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
select CNOMBREP01, sum(cunidades) mesprueba
from
(
	select
	  CNOMBREP01,cunidades
	from MGW10010
	full join MGW10005 on MGW10005.CIDPRODU01 = MGW10010.CIDPRODU01
	full join MGW10008 on MGW10008.CIDDOCUM01 = MGW10010.CIDDOCUM01
	where
	  MGW10008.CFECHA between '2017-01-1' and '2017-01-31'
	union all
	select
	  CNOMBREP01,cunidades
	from MGW10010_2016
	full join MGW10005 on MGW10005.CIDPRODU01 = MGW10010_2016.CIDPRODU01
	full join MGW10008_2016 on MGW10008_2016.CIDDOCUM01 = MGW10010_2016.CIDDOCUM01
	where
	  MGW10008_2016.CFECHA between '2016-01-1' and '2016-01-31'
) T1
group by CNOMBREP01

Nota al margen, los paréntesis que tenías no sirven en realidad para nada, no mejoran ni empeoran el rendimiento de la consulta

Haz la prueba y nos comentas.

Saludos
Leo.
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
Val: 8
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

sumar resultado de 2 consultas

Publicado por jose juan (5 intervenciones) el 23/02/2017 06:14:10
muchisimas gracias de verdad, si funciono, solo tengo una duda, para que sirve el T1 en la consulta ?, solo por curiosidad, y de nuevo muchisimas gracias yo no sabía que se podía hacer ese tipo de consultas, oye y por sierto una cosa mas , me podrías pasar tus datos para poner referencias en un documento es para mis practicas y los necesito para las bibliografías por favor bueno si se puede y de ante mano muchisimas gracias
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
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

sumar resultado de 2 consultas

Publicado por leonardo_josue (1173 intervenciones) el 23/02/2017 16:21:28
Hola de nuevo José Juan:

T1 es el NOMBRE O ALIAS de la tabla derivada.

Recuerda que el resultado de cualquier operación entre tablas en una BD's, da como resultado una nueva tabla, en este caso, al hacer la subconsulta con el UNION (es decir, lo que está en los paréntesis) te da como resultado una "nueva" tabla, a la cual debes asignarle un NOMBRE o ALIAS. en otras palabras es lo mismo a que hicieras algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT Tabla1.* FROM tabla1;
 
o
 
SELECT T1.* FROM Tabla1 as T1
 
o
 
SELECT T1.* FROM Tabla1 T1
 
o
 
SELECT T1.* FROM (Tabla1) T1

¿Se entiende?

Con respecto a la bibliografia, LEONARDO JOSUÉ CORCEGA UFONA es mi Alias, y mi correo [email protected]. Espero que te puedan servir de algo. No olvides poner en la bibliografía la URL de donde encontraste las ayudas.

Saludos
Leo.
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
Val: 8
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

sumar resultado de 2 consultas

Publicado por jose juan (5 intervenciones) el 23/02/2017 18:09:00
si ya logre comprenderlo, de nuevo muchas gracias
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