学号 成绩 学分
---------------------------------
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 学号
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
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的方法.
简单,直接.
推荐passionke的方法.
简单,直接.
#9
忘了说明了啊:
我把查出来的结果值再插入另一个表中
形式为:
学号 总分
--------------------------
10001 521
10002 652
怎么在SQL里直接插入另一个表Table2中啊 ???
我把查出来的结果值再插入另一个表中
形式为:
学号 总分
--------------------------
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 学号
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 学号
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
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的方法.
简单,直接.
推荐passionke的方法.
简单,直接.
#9
忘了说明了啊:
我把查出来的结果值再插入另一个表中
形式为:
学号 总分
--------------------------
10001 521
10002 652
怎么在SQL里直接插入另一个表Table2中啊 ???
我把查出来的结果值再插入另一个表中
形式为:
学号 总分
--------------------------
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 学号
select 学号, sum(成绩*学分) from table1 group by 学号