Problem passing rows results to columns names I have a table with following data:


ID  IDALUMNO    ALUMNO                          IDTIPOEVALUACION    TIPOEVALUACION  NOTA
1   682         ALVITEZ MIRANDA, KAREN LIZET    1                   PR1             13
2   682         ALVITEZ MIRANDA, KAREN LIZET    1                   PR2             14
3   682         ALVITEZ MIRANDA, KAREN LIZET    1                   PR3             NULL
4   682         ALVITEZ MIRANDA, KAREN LIZET    4                   TR1             11
5   682         ALVITEZ MIRANDA, KAREN LIZET    6                   PA1             14
6   682         ALVITEZ MIRANDA, KAREN LIZET    6                   PA2             18
7   682         ALVITEZ MIRANDA, KAREN LIZET    6                   PA3             17
8   682         ALVITEZ MIRANDA, KAREN LIZET    6                   PA4             16


And using PIVOT


SELECT [ALUMNO], [PR1], [PR2], [PR3], [TR1], [PA1], [PA2], [PA3], [PA4]
FROM
( SELECT * FROM ALUMNOSEVALUACIONES ) AS [SOURCE]
PIVOT
(
    AVG(NOTA)
    FOR [TIPOEVALUACION] IN ([PR1], [PR2], [PR3], [TR1], [PA1], [PA2], [PA3], [PA4])
) AS PIVOTTABLE


I get the following result:


ALUMNO                          PR1     PR2     PR3     TR1     PA1     PA2     PA3     PA4
ALVITEZ MIRANDA, KAREN LIZET    13      NULL    NULL    NULL    NULL    NULL    NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    14      NULL    NULL    NULL    NULL    NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    11      NULL    NULL    NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    NULL    14      NULL    NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    NULL    NULL    18      NULL    NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    NULL    NULL    NULL    17      NULL
ALVITEZ MIRANDA, KAREN LIZET    NULL    NULL    NULL    NULL    NULL    NULL    NULL    16


But I need this result:


ALUMNO                          PR1     PR2     PR3     TR1     PA1     PA2     PA3     PA4
ALVITEZ MIRANDA, KAREN LIZET    13      14      NULL    11      14      18     17       16


My question is whether you can get the results as they wish using PIVOT.

Please look at my demo
I haven't done the actual brainwork to articulate what the bug is, but I believe the following code may solve your problem.

with PvtData ( ALUMNO, TIPOEVALUACION, AvgNOTA ) as
    ( select 
        ALUMNO
        ,[TIPOEVALUACION]
        ,avg( nota ) as AvgNOTA
    from ALUMNOSEVALUACIONES
    group by ALUMNO
        ,[TIPOEVALUACION] )
select 
    * 
from PvtData
PIVOT
(
    sum(AvgNOTA)
    FOR [TIPOEVALUACION] IN ([PR1], [PR2], [PR3], [TR1], [PA1], [PA2], [PA3], [PA4])
) AS PIVOTTABLE


Pre-aggregating the average appears to return the correct Data. I hope this helps you!