计算SQL Server中的行总和

时间:2018-01-16 19:52:43

标签: c# asp.net .net sql-server sql-server-2008

我创建了一个类似enter image description here

的表格

使用pivot

将行值转换为列
Select 
    StudentName, EC1, EC2, EC3, EC4, EC5 
from 
    tblStudent
Pivot 
    (Sum(Marks) for subject in ([EC1], [EC2], [EC3], [EC4], [EC5])
    ) as PivotTable

enter image description here

现在我想在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

0 个答案:

没有答案