如何在表中查找列的总和并将总和插入为新行

时间:2013-04-09 11:12:15

标签: sql-server-2008

我在执行某种查询后得到了这个结果

enter image description here包含以下行:

我想为给定结果中的每个学生计算总分数为(12/38 + 14/23 + ....)并将其插入新行 如

StudentName,StudentId,term,“总计”作为主题,“计算的TotalMarks ”为Marks,Class,Dicision,id, null 作为DivisionSubject_SubjectProirity

以任何方式做到这一点.... Plz让我知道

1 个答案:

答案 0 :(得分:0)

尝试此查询。

首先select将所有值转换为临时表

select 
       StudentName,
       StudentId,
       term,
       cast(sum(convert(int,substring(Marks,1,CHARINDEX('/',Marks,1)-1))) as varchar) As 'Subject',
       cast(sum(convert(int,substring(Marks,CHARINDEX('/',Marks,1)+1,len(Marks)))) as varchar) As Marks,
       class,
       division,
       id
into #t
from tablename
group by StudentName,StudentId,term,class,division,id

现在使用批量插入

insert into table_insert
(
StudentName
,StudentId
,term
,[Subject]
,Marks
,class
,division
,id
,DivisionSubject_SubjectPriority
)
select 
StudentName
,StudentId
,term
,[Subject]
,Marks
,class
,division
,id
,NULL
from #t