求一SQL语句:典型的同一字段(int)值相加.答后给分(50)

时间:2023-02-02 15:13:19
我的表字段如下:
学号        成绩       学分
---------------------------------
10001       95         5
10001       85         6
10002       45         5
10001       80         3
…………………
…………………

问题是:
求某一学号比如说10001的所有成绩*学分后的和累加.即:sum = 95*5 + 85*6 + 80*3 + ……

SQL语句怎么写呢?

12 个解决方案

#1


select a.cj*a.xf+b.cj*b.xf from table a,table b where a.xh = b.xh and a.xf<>b.xf

#2


select 学号, sum(成绩*学分) from table group by 学号

#3


select sum(成绩*学分) [sum] from tb_name where 学号='10001'

#4


--如果你只想对学号10001进行学号*成绩进行汇总的话,可以
select 学号,sum(成绩*学分) 总计 from table1 where 学号='10001'

--如果你想对所有学号都进行学号*成绩进行汇总的话,可以
select 学号,sum(成绩*学分) 总计 from table1 group by 学号 order by 学号

#5


create proc p_tbName(@id varchar(20),@sum out int)
as
begin
set nocount on
select @sum=sum(成绩*学分)  from tb_name where 学号=@id
end

--调用
declare @a int
exec  p_tbName '10001',@sum=@a output
print @a

#6


select 学号, sum(成绩*学分) from table group by 学号 order by 学号

#7


: zonelive(peter) 


晕,这也要建存储过程!

#8


to 楼主:
推荐passionke的方法.
简单,直接.

#9


忘了说明了啊:
我把查出来的结果值再插入另一个表中
形式为:

学号         总分        
--------------------------
10001         521     
10002         652

怎么在SQL里直接插入另一个表Table2中啊   ???

#10


用select into

#11


select 学号, sum(成绩*学分) into 另外表 from table group by 学号 order by 学号

#12


insert into table2(学号,总分)
select 学号, sum(成绩*学分) from table1 group by 学号

#1


select a.cj*a.xf+b.cj*b.xf from table a,table b where a.xh = b.xh and a.xf<>b.xf

#2


select 学号, sum(成绩*学分) from table group by 学号

#3


select sum(成绩*学分) [sum] from tb_name where 学号='10001'

#4


--如果你只想对学号10001进行学号*成绩进行汇总的话,可以
select 学号,sum(成绩*学分) 总计 from table1 where 学号='10001'

--如果你想对所有学号都进行学号*成绩进行汇总的话,可以
select 学号,sum(成绩*学分) 总计 from table1 group by 学号 order by 学号

#5


create proc p_tbName(@id varchar(20),@sum out int)
as
begin
set nocount on
select @sum=sum(成绩*学分)  from tb_name where 学号=@id
end

--调用
declare @a int
exec  p_tbName '10001',@sum=@a output
print @a

#6


select 学号, sum(成绩*学分) from table group by 学号 order by 学号

#7


: zonelive(peter) 


晕,这也要建存储过程!

#8


to 楼主:
推荐passionke的方法.
简单,直接.

#9


忘了说明了啊:
我把查出来的结果值再插入另一个表中
形式为:

学号         总分        
--------------------------
10001         521     
10002         652

怎么在SQL里直接插入另一个表Table2中啊   ???

#10


用select into

#11


select 学号, sum(成绩*学分) into 另外表 from table group by 学号 order by 学号

#12


insert into table2(学号,总分)
select 学号, sum(成绩*学分) from table1 group by 学号