解决方案 »
- SQL提示:将varchar值转换为数据类型为 int 的列时发生语法错误
- SQL 列与行的转换.
- 一句简单SQL语句~
- 数据库设计时的疑惑。书上说的和现实中看到的大不同,为什么硬要把一个表分成两个?
- 急!!!关于sql安装
- 请教如何进行多张表之间的查询和修改
- SQL2005 导入Excel 报将截断字符串或二进制数据 语句已终止
- 在服务管理器 列表里面 找不到本机 sql 服务器 的名子 是什么原因?
- 特简单的问题:怎么用odbc把表与sql连接起来,
- 通过拨号上网连接sql server,速度怎么样?
- (a=2 or a=3) and (((b<>2) and (b<>3)) or b is null) 用Sql写?
- SQL错误提示
insert into tb values('11111', 100 , 72 , 73, 74 )
insert into tb values('11111', 200 , 62 , 63, 64 )
insert into tb values('11111', 300 , 82 , 83, 84 )
insert into tb values('22222', 200 , 52 , 53, 54 )
insert into tb values('22222', 100 , 42 , 43, 44 )
goselect 学生编号 , cast(sum(平均分) as decimal(18,2)) 平均分 from
(
select 学生编号 , 平均分 = (表现A * 0.5 + 表现B * 0.3 + 表现C * 0.1) * 学习课时 / (select sum(学习课时) from tb where 学生编号 = t.学生编号) from tb t
) m
group by 学生编号drop table tb/*
学生编号 平均分
---------- --------------------
11111 66.80
22222 44.30(所影响的行数为 2 行)
*/
FROM 表
GROUP BY 学生编号
insert into tb values('11111', 100 , 72 , 73, 74 )
insert into tb values('11111', 200 , 62 , 63, 64 )
insert into tb values('11111', 300 , 82 , 83, 84 )
insert into tb values('22222', 200 , 52 , 53, 54 )
insert into tb values('22222', 100 , 42 , 43, 44 )
goselect 学生编号 , 平均分 = cast(sum((表现A * 0.5 + 表现B * 0.4 + 表现C * 0.1) * 学习课时) / sum(学习课时) as decimal(18,2))
from tb
group by 学生编号drop table tb/*
学生编号 平均分
---------- --------------------
11111 74.27
22222 49.27(所影响的行数为 2 行)
*/
学生编号 ,
sum((表现A * 0.5 , 表现B * 0.3 + 表现C * 0.1) * 学习课时 / (select sum(学习课时) from tb where 学生编号 = G.学生编号))
from
成绩表 G
gropu by
学生编号
select
学生编号 ,
sum((表现A * 0.5 , 表现B * 0.3 + 表现C * 0.1) * 学习课时 / (select sum(学习课时) from tb where 学生编号 = G.学生编号)) as 平均成绩
from
成绩表 G
gropu by
学生编号