Esto puede que sea lo que quieres.
Select distinct
idalumno,
idmateria,
CASE when tipoEvaluacion = 'Ordinaria' then calificacion else 0 end CalOrdinaria,
0 CalExtraOrdinaria
into #calificacion
from Calificacion
where tipoEvaluacion = 'Ordinaria'
union
Select distinct
idalumno,
idmateria,
0,
CASE when tipoEvaluacion = 'Extra Ordinaria' then calificacion else 0 end CalExtraOrdinaria
from Calificacion
where tipoEvaluacion = 'Extra Ordinaria'
Select
idalumno,
idmateria,
SUM(CalOrdinaria) CalOrdinaria,
SUM(CalExtraOrdinaria) CalExtraOrdinaria
from #calificacion
Group by idalumno,
idmateria
drop Table #calificacion
|