Agrupar campos según su expresión

Buenos días,
LLevo varios días intentando crear una "consulta" que me agrupe distintos campos según el contenido de los mismos y no doy encontrado como. Me explico:
Tengo una sola tabla ESTADISTICAS con los campos: ID (autonumerico); JUGADOR; CONVOCATORIA (Titular, Suplente o No convocado); PARTICIPACION (Si o No); GOLES; etc.
Y quiero obtener "la cuenta de CONVOCATORIA que no sean No convocado", "la cuenta de PARTICIPACIÓN que sean Si", "la suma de GOLES" todo ello por JUGADOR
Es decir, en la tabla tengo:
Id jugador convocatoria participación goles
1 Ruben Titular Si 5
2 Gabriel Titular Si 3
3 Ruben Suplente No 1
4 Gabriel Suplente Si 0
Y obtener tras apilcar "la consulta":
JUGADOR     CuentaCONVOCATORIA     CuentaPARTICIPACION     SumaGOLES
Ruben 2 1 6
Gabriel 2 2 3
Gracias, Ruben ([email protected])
Respuesta
1
Bien, para hacer eso necesitas 3 tablas de referencias cruzadas y una consulta de selección:
Tabla de Referencias "Convocatorias" (Entiendo convocado el que es Titular o Suplente)
TRANSFORM Count(Estadisticas.Id) AS CuentaDeID
SELECT Estadisticas.Jugador, Count(Estadisticas.Id) AS CuentaCONVOCATORIA
FROM Estadisticas
WHERE (((Estadisticas.Convocatoria)="Titular" Or (Estadisticas.Convocatoria)="Suplente"))
GROUP BY Estadisticas.Jugador
PIVOT Estadisticas.Convocatoria;
Tabla de Referencias "Participacion"
TRANSFORM Count(Estadisticas.Id) AS CuentaDeID
SELECT Estadisticas.Jugador, Count(Estadisticas.Id) AS CuentaPARTICIPACION
FROM Estadisticas
WHERE (((Estadisticas.Participacion)=-1))
GROUP BY Estadisticas.Jugador
PIVOT Estadisticas.Participacion;
Tabla de Referencias "Goles"
TRANSFORM Sum(Estadisticas.Goles) AS SumaDeGOLES
SELECT Estadisticas.Jugador, Sum(Estadisticas.Goles) AS SumaGOLES
FROM Estadisticas
GROUP BY Estadisticas.Jugador
PIVOT Estadisticas.Convocatoria;
Y, finalmente, la consulta que deseas ver:
SELECT Convocatorias.Jugador, Convocatorias.CuentaCONVOCATORIA, Participacion.CuentaPARTICIPACION, Goles.SumaGOLES
FROM (Convocatorias INNER JOIN Goles ON Convocatorias.Jugador = Goles.Jugador) INNER JOIN Participacion ON Goles.Jugador = Participacion.Jugador;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas