Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta MySql Tabla de posiciones futbol

Estas en el tema de Consulta MySql Tabla de posiciones futbol en el foro de Mysql en Foros del Web. tengo la siguiente tabla @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE TABLE   `liga` . `partidos` (   `id` int ( 10 ) unsigned NOT ...
  #1 (permalink)  
Antiguo 21/08/2012, 00:31
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
Consulta MySql Tabla de posiciones futbol

tengo la siguiente tabla

Código MySQL:
Ver original
  1. CREATE TABLE  `liga`.`partidos` (
  2.   `fecha` datetime DEFAULT NULL,
  3.   `jornada` int(10) DEFAULT NULL,
  4.   `equipo1` int(10) DEFAULT NULL,
  5.   `equipo2` int(10) DEFAULT NULL,
  6.   `hora` varchar(45) DEFAULT NULL,
  7.   `torneo` int(10) DEFAULT NULL,
  8.   `resultado1` varchar(45) DEFAULT NULL,
  9.   `resultado2` varchar(45) DEFAULT NULL,
  10.   PRIMARY KEY (`id`)

donde registro los resultados de los partidos de un torneo y lo que quiero hacer es una tabla de posiciones de los equipos la vdd ya me mate y no logor hacer la consulta alguien me puede dar la mano

lo que quiero hacer es mostrar asi:


Código HTML:
Ver original
  1. LUGAR   CLUB    JJ  JG  JE  JP  GF  GC  DIF     PTS     EFEC
  2. 1       equipo  4   3   1   0   7   4   3   10  83.33 %


donde:

Simbología
JJ = Juegos Jugados GC = Goles en contra
JG = Juegos Ganados DIF = Goles a favor - Goles en Contra
JE = Juegos Empatados PTS= Puntos
JP = Juegos Perdidos EFEC= Puntos obtenidos / Puntos posibles
GF = Goles a Favor
  #2 (permalink)  
Antiguo 15/10/2012, 11:30
 
Fecha de Ingreso: marzo-2011
Ubicación: en el limbo...
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Consulta MySql Tabla de posiciones futbol

Mira, no soy un experto, pero tengo una consulta que puede ayudarte, la tengo de una web inglesa, la adapte para lo que yo queria y asi te la copio, fijate si te sirve aunque sea para adaptarla.
Código MySQL:
Ver original
  1.     t.id,  
  2.     t.nome AS Equipo ,
  3.     (SUM(CASE WHEN (g.hometeam = t.id AND g.homegoals > g.awaygoals ) OR ( g.awayteam = t.id AND g.awaygoals > g.homegoals) THEN 3 ELSE 0 END) + SUM(CASE WHEN ( g.hometeam = t.id OR g.awayteam = t.id ) AND ( g.homegoals = g.awaygoals ) THEN 1 ELSE 0 END)) AS PTS ,  
  4.     SUM(CASE WHEN ( g.hometeam = t.id OR g.awayteam = t.id ) THEN 1 ELSE 0 END) AS PJ ,  
  5.     SUM(CASE WHEN ( g.hometeam = t.id AND g.homegoals > g.awaygoals ) OR ( g.awayteam = t.id AND g.awaygoals > g.homegoals ) THEN 1 ELSE 0 END) AS V ,
  6.     SUM(CASE WHEN ( g.hometeam = t.id OR g.awayteam = t.id ) AND g.homegoals = g.awaygoals THEN 1 ELSE 0 END) AS E ,  
  7.     SUM(CASE WHEN ( g.hometeam = t.id AND g.homegoals < g.awaygoals ) OR ( g.awayteam = t.id AND g.awaygoals < g.homegoals ) THEN 1 ELSE 0 END) AS D ,  
  8.     COALESCE(SUM(CASE WHEN (g.hometeam = t.id) THEN g.homegoals WHEN (g.awayteam = t.id) THEN g.awaygoals END),0) AS GF ,
  9.     COALESCE(SUM(CASE WHEN (g.hometeam = t.id) THEN g.awaygoals WHEN (g.awayteam = t.id) THEN g.homegoals END),0) AS GC ,  
  10.     COALESCE((SUM(CASE WHEN (g.hometeam = t.id) THEN g.homegoals WHEN (g.awayteam = t.id) THEN g.awaygoals END) - SUM(CASE WHEN (g.hometeam = t.id) THEN g.awaygoals WHEN (g.awayteam = t.id) THEN g.homegoals END)),0) AS DIF
  11. FROM teams t  
  12.     LEFT OUTER JOIN games g ON t.id IN (g.hometeam,g.awayteam)
  13. WHERE g.torneo_id = '1' AND g.homegoals <> ''
  14. GROUP BY t.id, t.nome
  15. ORDER BY PTS DESC, V DESC, DIF DESC, GF DESC, PJ ASC, t.nome ASC
saludos

Última edición por gnzsoloyo; 15/10/2012 a las 11:38 Razón: Codigo de programacion es off-toopic y contra las normas del foro de base de datos.

Etiquetas: futbol, posiciones, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:22.