使用pivot
将行值转换为列Select
StudentName, EC1, EC2, EC3, EC4, EC5
from
tblStudent
Pivot
(Sum(Marks) for subject in ([EC1], [EC2], [EC3], [EC4], [EC5])
) as PivotTable
现在我想在EC5之后添加一个新列,名称Toatl值将是所有5个主题的总和
我尝试使用临时表
CREATE TABLE #StudentTemp
(
StudentName varchar(20),
EC1 int,EC2 int,EC3 int,EC4 int,EC5 int
)
GO
INSERT INTO #StudentTemp
SELECT StudentName, EC1, EC2, EC3, EC4, EC5
FROM tblStudent
PIVOT
(SUM(Marks) for subject in ([EC1], [EC2], [EC3], [EC4], [EC5])
) as PivotTable
SELECT
*,
SUM(EC1 + EC2 + EC3 + EC4 + EC5) AS Total
FROM
#StudentTemp
GROUP BY
StudentName
在此之后我尝试加入
SELECT *
FROM #StudentTemp sp
INNER JOIN tblStudent s ON sp.StudentName = s.StudentName
GROUP BY s.StudentName
SELECT StudentName, SUM(EC1 + EC2 + EC3 + EC4 + EC5) AS Total
FROM #StudentTemp
GROUP BY StudentName
SELECT SUM(EC1 + EC2),*
FROM #StudentTemp
GROUP BY StudentName