Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2012, 09:50
schattenburg
 
Fecha de Ingreso: junio-2007
Mensajes: 298
Antigüedad: 16 años, 10 meses
Puntos: 5
Problema SQL con Union All

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