Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2008, 04:50
Avatar de Subotai
Subotai
 
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 10 meses
Puntos: 1
Pregunta Clausula where en el COUNT() o doble consulta??

Buenas a todos,

Estoy liado con una página futbolera, tengo una tabla para manejar las tarjetas rojas y amarillas que tiene la siguiente estructura:


Tabla Tarjetas
-----------------------------------
ID_TARJETA
ID_JUGADOR
ID_PARTIDO
TIPO
MINUTO

El ID_JUGADOR enlaza con la tabla de jugadores y el ID_PARTIDO con la de partidos.

Lo que quiero conseguir es que de una consulta recuperar registros que contengan el nombre del jugador, el número de tarjetas rojas y el número de tarjetas amarillas.

Hasta ahora solo he conseguido una select que funcione bien, recupero todo lo que quiero, pero con filas duplicadas cuando el mismo jugador tiene tarjetas de ambos tipos...
Es decir, que recupero el nombre del jugador y el número de amarillas, y en la siguiente fila, tengo el nombre del mismo jugador y el número de rojas.

Cita:
SELECT count( TIPO ) AS numero, tarjetas.TIPO AS tarjeta, jugadores.NOMBRE AS nombre, jugadores.APELLIDOS AS apellidos
FROM tarjetas
INNER JOIN jugadores ON ( tarjetas.ID_JUGADOR = jugadores.ID_JUGADOR )
WHERE jugadores.ID_EQUIPO =24
GROUP BY tarjetas.ID_JUGADOR, tarjeta
He intentado varias cosas, pero ninguna me da resultado, si pudiera poner una cláusula del tipo COUNT ( TIPO = 'amarilla') as amarillas y otra COUNT (TIPO = 'roja') as rojas... pero no funciona o no conozco la sintaxis correcta.

He intentado con dos HAVING pero lógicamente ninguna fila de la tabla tendrá jamás roja y amarilla...


Me imagino que la solución vendría con una doble select o algo así pero no lo veo..

alguien tiene alguna idea?? Mil gracias de antebrazo ;PPP