Interesting concept... but it doesn't work correctly. I ran the code and the test code, as is... the results are not exactly a cross tab... look at the scores for each person in each column...
[font="Courier New"]student course_SQL__grade course_VB___grade
---------- ----------------- -----------------
ELI 79 79
ELI 80 80
SHMIL 69 69
SHMIL 99 99
(4 row(s) affected)
[/font]