Funcion select anidada

Buenas noches tengo una columna tipo Ref con la siguiente formula SELECT(jugadores[id jugador],CONTAINS([id equipo],[_THISROW].[id equipo]). Además quiero que también me filtre por SELECT(jugadores[id jugador],NOT(IN([id jugador],SELECT(REGISTROS[ID JUGADOR],true)))). Lo que quiero es que primero me filtre el id jugador en el que contenga el nombre del equipo, y a la vez si está grabado ya un registro no me vuelva a aparecer en el desplegable. Por independiente si consigo que ambas funciones, pero cuando intento la unión con un AND o de otra manera no me funciona alguna de las dos. Os agradecería la ayuda.

Solved Solved
1 3 824
1 ACCEPTED SOLUTION

Ya lo he conseguido:

SELECT(jugadores[id jugador],
AND(IN([_THISROW].[id equipo], [id equipo]),
NOT(IN([id jugador],select(registros[id jugador],[id actividad]=[_THISROW].[id ACTIVIDAD])))))

Esto hace que me filtre por las dos condiciones.

View solution in original post

3 REPLIES 3

Si compartes capturas de pantalla y ejemplos de los datos, es probable que mejor se entienda lo que pretendes lograr para entonces poder aconsejarte.

Mientras tanto, unos detalles para considerar:

  • CONTAINS([id equipo],[_THISROW].[id equipo]) no es típico en esa situación. A lo mejor quieres IN([_THISROW].[id equipo], [id equipo]) o simplemente [id equipo] = [_THISROW].[id equipo].
  • SELECT(REGISTROS[ID JUGADOR],true) es equivalente a REGISTROS[ID JUGADOR]. A lo mejor no es lo que quieres.

Gracias por contestar. Intento explicarme:

Tengo una tabla actividades, otra tabla registros y otra tabla jugadores. La tabla registros tiene una columna "ref", referenciada a la tabla actividades y marcado "es parte de". Por lo cual para poder grabar en la tabla registros, tiene que ser a traves de la vista de actividades y dandole a nuevo. Una vez que se hace eso, aparece la vista formulario de la tabla registros, donde hay una columna referenciada (desplegable) a la tabla jugadores, con la formula SELECT(jugadores[id jugador],CONTAINS([id equipo],[_THISROW].[id equipo]) para que me haga un filtrado de lo que quiero traer. Por cierto esta formula también me funciona con la expresión que me has comentado de sustituir "CONTAINS([id equipo],[_THISROW].[id equipo]) no es típico en esa situación. A lo mejor quieres IN([_THISROW].[id equipo], [id equipo])". Lo que necesito es que además de filtrar los datos de esa columna tal como describo antes, los id de los jugadores vayan desapareciendo del desplegable conforme los haya grabado. Si no utilizo la formulas anteriores y pongo SELECT(jugadores[id jugador],NOT(IN([id jugador],SELECT(REGISTROS[ID JUGADOR],true)))), consigo que no aparezcan conforme hayan sido grabados. El problema es que cuando intento unir ambas formulas no consigo que funcionen para que me filtre por ambos condicionantes. Por separado si funcionan, pero juntas no.

No se si me he explicado, entiendo que por este medio es lioso. Gracias por ayudarme!!!!!.

Ya lo he conseguido:

SELECT(jugadores[id jugador],
AND(IN([_THISROW].[id equipo], [id equipo]),
NOT(IN([id jugador],select(registros[id jugador],[id actividad]=[_THISROW].[id ACTIVIDAD])))))

Esto hace que me filtre por las dos condiciones.

Top Labels in this Space