使用数据透视表计算列

The use of pivot data to calculate a column

我有一个 PIVOT

SELECT         txtSchoolID, intSubjectID, txtPreName, txtSurname, txtForm, [636] AS Effort, [637] AS Focus, [638] AS Participation, [639] AS Groupwork, [640] AS Rigour, [641] AS Curiosity, [642] AS Initiative,
                [643] AS SelfOrganisation, [644] as Perserverance       

FROM         (SELECT  txtSchoolID, intSubjectID, intGradeTransposeValue, intGradeID, txtForm, txtPreName, txtSurname FROM VwReportsManagementAcademicReports 
                WHERE (intReportCycleID = 142) AND (intReportProgress = 1)) p
PIVOT
(AVG        (intGradeTransposeValue)
FOR intGradeID IN ([636], [637], [638], [639], [640], [641], [642], [643], [644] )
) AS pvt

我现在需要使用数据透视表中的值来生成额外的列。我想创建一个名为 FocusLH 的列,并使用基于计算的值填充它。计算是 - 如果 Effort+Focus=2 的结果,则在 FocusLH 中分配值 5,如果结果为 3,则分配值 4 等等

这可能吗?

我将 CASE 语句放在了错误的位置,需要使用 intGradeID 而不是别名。这现在有效

SELECT         txtSchoolID, intSubjectID, txtPreName, txtSurname, txtForm, [636] AS Effort, [637] AS Focus, [638] AS Participation, [639] AS Groupwork, [640] AS Rigour, [641] AS Curiosity, [642] AS Initiative,
                [643] AS SelfOrganisation, [644] as Perserverance,       
        CASE WHEN [636] + [637] = 2 THEN 5 
        WHEN [636] + [637] =3 THEN 4 
        WHEN [636] + [637] =4 THEN 3 
        WHEN [636] + [637] =5 THEN 2         
        ELSE NULL END AS FocusLH 
FROM         (SELECT  txtSchoolID, intSubjectID, intGradeTransposeValue, intGradeID, txtForm, txtPreName, txtSurname                
                FROM VwReportsManagementAcademicReports 
                WHERE (intReportCycleID = 142) AND (intReportProgress = 1)) p
PIVOT
(MAX        (intGradeTransposeValue)
FOR intGradeID IN ([636], [637], [638], [639], [640], [641], [642], [643], [644] )
) AS pvt