OK. Ahora se entiende mejor...
Lo que necesitas obtener es lo que se denomina "tabla inversa".
Bueno, eso tiene dos soluciones, pero la más simple de todas es programática.
Me explico.
La consulta sólo puede obtener los datos puros de la tabla que tienes. MySQL, que es el DBMS que usas, no tiene funciones ni clausulas que puedan crear tablas inversas. Para lograrlo deberías hacer una consulta con N JOINs, uno por cada tarjeta que exista registrada. Es un tipo de consulta sumamente ineficiente, y no es recomendable en este DBMS (Si usases otro, la cosa cambia).
A nivel de SQL, la cosa sería mas o menos así:
Obviamente si hay más tarjetas, se necesitan más INNER JOIN con otros alias tanto en las tablas como en las columnas.
Si además una de las TJ no tiene todos los tipos de cuota, o tiene más, ya esta query no es funcional y hay que hacer uso del LEFT JOIN y funciones de conversion de null (IFNULL()) para evitar datos nulos.
Se complica mucho.
A nivel programático lo que haces es recorrer el resultado de esa query base y vas armando las columnas en función de los datos que encuentras. No es muy corto, pero se puede hacer.
En ese caso la query es simplemente:
y la construccion visual de la tabla la haces por PHP.