hola,
puedes hacer varias cosas, pero siempre deberás agrupar po dni si quieres mostrarlo en una sola fila.
Supongo que usas mysql por la definición de la tabla, y no sé si soportará esto.
Opción A: sacar todo de la tabla
Opción B: hacer uniones con la tabla y consigo misma para extraer la información.
Para que veas cómo puedes hacerlo, y steniendo en cuenta que tu motor de sql puede variar algunas clausulas.
Código SQL
[-]
select DNI,
max( case idexamen_fk = 1 then puntaje else 0 end ) as EXAMEN_1,
max( case idexamen_fk = 2 then puntaje else 0 end ) as EXAMEN_2,
max( case idexamen_fk = 3 then puntaje else 0 end ) as EXAMEN_3,
max( case idexamen_fk = 4 then puntaje else 0 end ) as EXAMEN_4
FROM POSTULANTE_PUNTAJE
GROUP BY DNI
Podrías utilizar esta consulta para unirla con las demás tablas ( datos de usuario, nombre examen...)
El gran inconveniente es que si añades examenes, tendrías que cambiar la consulta.
Prueba y nos dices.
Espero que te haya ayudado.
Un saludo