紧急!!!!!!!!!

hongye112928 2003-12-12 03:55:14
我建有三个表:
学生表:
学生编号 学生姓名 性别 年龄
01101101 1 男 22
01101103 2 女 22
01101104 3 男 22
课程表:
课程编号 课程名称 课程性质 课程常数 周学时
c1 英语 考试课 1.1 3
c2 汇编语言 考试课 1.1 5
c3 delphi 考查课 0.9 4
学生选课表:
学生编号 课程编号 成绩
01101101 c1 88
01101101 c2 78
01101101 c3 89
01101103 c1 85
01101103 c2 76
01101103 c3 71
现在我想算出每位同学的智育分:
智育分=考试课总学时分*1.1+考查课总学时分*0.9
-----------------------------------------
考试课总学时数*1.1+考查课总学时数*0.9
哪位大虾帮帮我吗?????????
很急,在线等待……
...全文
7 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuiniu 2003-12-12
declare @student table(学生编号 char(8),学生姓名 char(1) , 性别 char(2),年龄 int)
insert @student values('01101101','1','男',22)
insert @student values('01101103','2','女',22)
insert @student values('01101104','3','男',22)
declare @class table(课程编号 char(2), 课程名称 char(10) , 课程性质 char(6) , 课程常数 int, 周学时 int)
insert @class values('c1','英语','考试课',1.1,3)
insert @class values('c2','汇编语言','考试课',1.1,5)
insert @class values('c3','delphi','考查课',0.9,4)
declare @select table(学生编号 char(8),课程编号 char(2),成绩 int)
insert @select values('01101101','c1',88)
insert @select values('01101101','c2',78)
insert @select values('01101101','c3',89)
insert @select values('01101103','c1',85)
insert @select values('01101103','c2',76)
insert @select values('01101103','c3',71)


select a.学生编号,
isnull(
(sum(case when c.课程性质 = '考试课'then b.成绩 end) *1.1 + sum(case when c.课程性质 = '考查课'then b.成绩 end) * 0.9 ) /
(sum(case when c.课程性质 = '考试课'then c.周学时 end) *1.1 + sum(case when c.课程性质 = '考查课'then c.周学时 end) * 0.9 ),0) 智育分
from @student a left join @select b on a.学生编号 = b.学生编号 left join @class c on b.课程编号 = c.课程编号
group by a.学生编号
  • 打赏
  • 举报
回复
Rotaxe 2003-12-12
select tem.学生编号,sum(tem.score)as 智育分 from(select 学生编号,成绩*(select 课程常数*周学时 from 课程表 c where c.课程编号=a.课程编号)as score from 学生选课表)tem group by tem.学生编号
  • 打赏
  • 举报
回复
victorycyz 2003-12-12
select
a.学生编号,
a.学生姓名,
sum(b.成绩*c.课程常数)/sum(b.周学时*课程常数) as 智育分
from
学生表 a join
(选课表 b join 课程表 c on b.课程编号=c.课程编号)
on a.学生编号=b.学生编号
group by a.学生编号
  • 打赏
  • 举报
回复
Rotaxe 2003-12-12
select 学生编号,sum(成绩*(select 课程常数*周学时 from 课程表 c where c.课程编号=a.课程编号))as 智育分 from 学生选课表 group by 学生编号
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
申请成为版主
帖子事件
创建了帖子
2003-12-12 03:55
社区公告
暂无公告