SQL - Consulta SQL con Union ALL

   
Vista:

Consulta SQL con Union ALL

Publicado por schattenburg (1 intervención) el 20/09/2012 17:37:25
Hola a todos:

tengo una duda. Tengo estas dos tablas:

equipos
registro (int)
nombre (varchar)
partidos
registro (int)
id_equipo1 (int)
resultado_equipo1 (int)
id_equipo2 (int)
resultado_equipo2 (int)

Quiero sacar un listado de todos los puntos conseguidos por cada equipo (tanto si han jugado como equipo 1 como con equipo 2), por lo que hago:

select nombre,sum(resultado_equipo1) as suma1 from equipos,partidos where equipos.registro=partidos.id_equipo1 group by nombre
union all
select nombre,sum(resultado_equipo1) as suma1 from equipos,partidos where equipos.registro=partidos.id_equipo1 group by nombre

Pero me muestra un listado como este:

NOMBRE SUMA1
ciudad1 24
ciudad2 35
ciudad3 46
ciudad1 57
ciudad2 43
ciudad3 65

Es decir, me tendría que sacar solo tres filas y agrupar los resultados, lo correcto sería:

NOMBRE SUMA1
ciudad1 81
ciudad2 78
ciudad3 111

Pensaba que al hacer el Union se sumarían entre sí las variables iguales, pero no.

¿Cuál es la forma correcta de hacerlo?

Gracias
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 xve

Consulta SQL con Union ALL

Publicado por xve (237 intervenciones) el 20/09/2012 17:58:45
El UNION junta dos consultas... tendrías que hacer algo así:

1
2
3
4
5
6
SELECT * FROM
(
select nombre,sum(resultado_equipo1) as suma1 from equipos,partidos where equipos.registro=partidos.id_equipo1 group by nombre
union all
select nombre,sum(resultado_equipo1) as suma1 from equipos,partidos where equipos.registro=partidos.id_equipo1 group by nombre
) AS result GROUP BY nombre


Coméntanos, ok?
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