select 分数,班级,姓名,(select sum(分数) from table where 班级=table.班级) as 所在班级总分 from table
解决方案 »
- 怎样将两个表中的数据用一条语句显示
- 选择语句,谢谢!!
- 求一条sql语句
- 有100条记录,怎么查询出前20条记录?
- 想做个这样的触发器
- 数据库
- 数据库恢复以后视图内数据变为乱码了?请大家帮助
- 各位高手,帮帮鸟儿我吧~~~谢谢了
- 当建立好一个表后,如果我用SQL语句去动态的改变某个int型字段的自增长属性,这条SQL语句该怎么写或者能不能实现?谢谢各位高手指点
- how installed sql server 7.0 in win98?
- 怎么写这个sql语句?
- 急问!我想在语句的子WHERE子句里写条件starttime>=1900-1-1 0:00:00 and starttime<=2004-9-8 0:00:00应该怎么写呀
create table 表(分数 int,班级 varchar(10),姓名 varchar(10))
insert 表 select 60,'1班','张三'
union all select 40,'1班','李四'
union all select 60,'1班','王五'
union all select 50,'2班','刘一'
union all select 20,'2班','吴涛'
union all select 43,'2班','将二'
union all select 30,'3班','李力'
union all select 79,'3班','小煤'
union all select 80,'3班','刘涛'
go--查询
select a.*,所在班级总分=isnull(b.总分,'')
from 表 a
left join(
select 班级,位置=(count(*)+1)/2,总分=cast(sum(分数) as varchar)
from 表 group by 班级
)b on a.班级=b.班级 and b.位置=(
select count(*) from 表
where 班级=a.班级 and 姓名<=a.姓名)
order by a.班级,a.姓名go--删除测试
drop table 表/*--测试结果
分数 班级 姓名 所在班级总分
----------- ---------- ---------- ------------------------------
40 1班 李四
60 1班 王五 160
60 1班 张三
43 2班 将二
50 2班 刘一 113
20 2班 吴涛
30 3班 李力
80 3班 刘涛 189
79 3班 小煤 (所影响的行数为 9 行)
--*/