Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/12/2012, 18:41
Avatar de ajgbcool
ajgbcool
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duda con UNION y seleccionar el valor deseado

Gracias esa es la solución. Puedo añadir algo mas y no molesto mas en un buen tiempo?

bien resuelto el tema este, el de crear los datos de ganados, empates y perdidos. Eso me crea los datos cuando un equipo es local, para hacer la tabla completa hay que hacer el mismo procedimiento (no se si esta vez se usa UNION) pero a la inversa. Yo he intentado con UNION y GROUP BY, algo así:

(SELECT equipo,
count(Count(Case When resultadolocal > resultadovisitante Then 1 End) win,
Count(Case When resultadolocal = resultadovisitante Then 1 End) draw,
Count(Case When resultadolocal > resultadovisitante Then 1 End) lose,
sum(resultadolocal) AS golesfavor,
sum(resultadovisitante) AS golescontra
FROM partidos
GROUP BY equipos)
UNION ALL
(SELECT equipo,
count(Count(Case When resultadolocal > resultadovisitante Then 1 End) win,
Count(Case When resultadolocal = resultadovisitante Then 1 End) draw,
Count(Case When resultadolocal > resultadovisitante Then 1 End) lose,
sum(resultadolocal) AS golesfavor,
sum(resultadovisitante) AS golescontra
FROM partidos
GROUP BY equipos)

___

El restultado es algo asi como:

equipo - win - draw - lose - golesfavor - golescontra
Equipo A - 1 - 1- 1 - 3 - 3
Equipo B - 2 - 2- 2 - 4 - 4
Equipo A - 0 - 0- 0 - 1 - 1
Equipo B - 5 - 5- 5 - 3 - 3

_____

Lo que hace es que hace correctamente las dos consultas, pero, a la final no hace el GROUP BY entre las dos consultas, entonces me duplica el equipo con los datos local y visitante. He tratado de hacer el (SELECT...) UNION ALL (SELECT...) GROUP BY pero me da error...

Gracias! me han ayudado bastante con esto!