Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/07/2012, 11:59
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: SELECT para contar partidos ganados

Código MySQL:
Ver original
  1. CREATE TABLE `puntuacion` (
  2.   `idpuntuacion` int(11) NOT NULL auto_increment,
  3.   `idusuario` int(11) NOT NULL,
  4.   `idtemporada` int(11) NOT NULL,
  5.   `jornada` int(11) NOT NULL,
  6.   `puntosjornada` int(11) NOT NULL,
  7.   PRIMARY KEY  (`idpuntuacion`)
  8.  
  9.  
  10. ////Inserto los datos de tu ejemplo pero con idUsuario 1,2,3,4
  11.  
  12.  
  13. SELECT SPuntos.idTemporada,
  14.        SPuntos.idUsuario,
  15.        ifnull(SbcVictorias.victorias,0) victorias,
  16.        SPuntos.puntos
  17. FROM ((SELECT p.idTemporada,
  18.               p.idUsuario,
  19.               SUM(p.puntosjornada)puntos
  20.        FROM Puntuacion p
  21.        GROUP BY idTemporada,idUsuario) SPuntos
  22.       (SELECT idTemporada,
  23.               idUsuario,
  24.               count(*) victorias
  25.        FROM (SELECT idTemporada,idUsuario
  26.               FROM Puntuacion p1
  27.              INNER JOIN
  28.              (SELECT max(p.puntosjornada) ganador
  29.               FROM Puntuacion p
  30.               GROUP BY idTemporada,jornada) pg
  31.              ON p1.puntosjornada=pg.ganador) ga
  32.        GROUP BY idTemporada,idUsuario) SbcVictorias
  33. ON SbcVictorias.idTemporada=SPuntos.idTemporada
  34.    AND SbcVictorias.idUsuario=SPuntos.idUsuario)
  35. ORDER BY victorias DESC, puntos DESC;

Esto te lo da por temporadas.... si quieres sumar temporadas es facil.

(Estoy suponiendo que no hay empates, si hay un empate cuenta dos ganadores)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 16/07/2012 a las 00:35