Base de datos sobre fútbol

A ver si puedes echarme una mano con mi base de datos.
Estoy haciendo una base de datos de fútbol. He relacionado las tablas Partidos y Equipos mediante una tabla auxiliar que he llamado Ficha Equipo/Partido, donde pongo un número de partido, el nombre del equipo, nº de goles, los puntos conseguidos en el partido, y si actuaba como local o visitante (un campo de tipo Sí/No).
El problema está en que quiero hacer una clasificación con goles a favor y en contra, y partidos ganados, empatados y perdidos de cada equipo. Lo he hecho de la siguiente manera: primero he creado 6 consultas de selección: ganados en casa (NºPuntos= 3 y Local=Sí), ganados fuera, empatados en casa y fuera, y perdidos en casa y fuera. Lógicamente, los equipos que no hayan, por ejemplo, ganado fuera de casa no aparecen en la lista.
Luego he hecho con cada una de estas 6 consultas otras 6 consultas de totales, agrupando por "Nombre_Equipo" y contando los treses (victorias), unos (empates) y ceros (derrotas).
Y por último he hecho una nueva consulta utilizando estas 6 últimas. Primero relacionando el campo "Nombre_Equipo" de todas (para que no me haga el producto cartesiano de todas ellas) y todas las cuentas de ganados fuera y en casa,... Sale perfecto, pero los que no tienen un determinado resultado (p.e. Los que no hayan ganado fuera), la casilla correspondiente de la consulta aparece vacía. Y cuando sumo los partidos ganados en casa y fuera, como una de las casillas esta vacía (supongo que será un valor NULL) la suma la deja también vacía.
Lo que me gustaría sería que en vez de aparecer la casilla vacía, apareciese un 0, para que así se pudiese sumar. ¿Sabrías cómo hacerlo? Siento el rollo, pero así te he explicado todos los pasos. Incluso si se te ocurre hacer todo lo que he hecho con menos consultas, se admiten sugerencias.
Si necesitas cualquier aclaración, no dudes en pedírmela.

1 respuesta

Respuesta
1
Es muy fácil, mirate el SQL de las consultas, y en cada campo que pueda estar a nulo le pones
IIf(IsNull([Campo]), 0,[Campo]) AS Campo
Sustituyendo el campo por tu nombre de columna
¿Se puede hacer de algún modo en access, sin recurrir a SQL? Gracias
Te digo lo de hacerlo en Access porque en SQL me da un error: Me dice: "La instrucción 'If' no está definida en la expresión".
Tal vez lo he puesto mal. Te escribo unos campos de la instrucción SELECT para que me digas como podría quedar la solución que me aportas, con estos campos como ejemplo:
SELECT [Ganados local].EQUIPO, [Ganados local].GL, [Ganados visitante].GV, [Empatados local].EL, [Empatados visitante].EV ....
¿Cómo tendría que ponerlo entonces?
Muchas gracias de nuevo por echarme un cable. Un saludo
Ricardo
Por ejemplo:
SELECT [Ganados local].EQUIPO, IIf(IsNull([Ganados local].GL),0,[Ganados local].GL) AS GL , [Ganados visitante].GV, [Empatados local].EL, [Empatados visitante].EV ....
Haces lo mismo para cada campo
Muchísimas gracias. Lo hice en SQL y cuando vi el diseño de la consulta en Access vi cómo se traducía la instrucción SQL a Access:
Ej: GolesLocal: SiInm(EsNulo([Campo]);0;[Campo])
Fantástica solución. Ahora funciona perfectamente. Muchísimas gracias otra vez. Si quieres la base de datos, no tienes más que pedírmela. Un saludo
Ricardo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas