a eso se le llama referencia cruzada o tabulacion cruzada...y puedes realizarla asi :
El requesito es q tengas 3 campos, en tu caso serian
codigo, materia y nota
ok digamos q tu tabla se llama misnotas
colocas :
Use misnotas
luego ejecuta esto
DO (_genxtab) WITH 'MyCursor'
_genxtab ya es una prg dedicado a este tipo de consultas y le mandas como parametro el cursor o tabla q te devolvera (MyCursor)..
Cualquier duda avisas..
Saludos