首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

刚学数据库的题目,该怎么处理

2012-03-03 
刚学数据库的题目 学生ID学生姓名课程ID课程名称成绩教师ID教师姓名----------------------S3王五K2语文81

刚学数据库的题目

学生ID   学生姓名       课程ID   课程名称                       成绩   教师ID   教师姓名
----------------------
S3         王五               K2         语文                               81   T2         王老师
S3         王五               K4         政治                               53   T4         赵老师
S4         赵六               K1         数学                               99   T1         张老师
S4         赵六               K2         语文                               33   T2         王老师
S4         赵六               K4         政治                               59   T4         赵老师
s1         张三               K4         政治                               79   T4         赵老师
s1         张三               K1         数学                               98   T1         张老师
s1         张三               K3         英语                               69   T3         李老师
s7         peter             K4         政治                               53   T4         赵老师
s2         mike               K1         数学                               64   T1         张老师
s2         mike               K2         语文                               81   T2         王老师
s2         mike               K4         政治                               53   T4         赵老师
----------------------

按平均成绩从高到低顺序,列出所有学生的四门(数学,语文,英语,政治)


统计列印各科成绩,各分数段人数,格式如下
-----------------------------------------------


课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]  
-----------------------------------------------


刚学数据对表的连接不太会,大家帮帮忙

[解决办法]
统计列印各科成绩,各分数段人数,格式如下
-----------------------------------------------
课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]
======

select 课程ID,课程名称,
[100-85]=sum(case when 成绩> 85 and 成绩 <=100 then 1 else 0 end ),
[85-70]=sum(case when 成绩> 70 and 成绩 <=85 then 1 else 0 end ),
[70-60]=sum(case when 成绩 between 60 and 70 then 1 else 0 end ),
[ <60]=sum(case when 成绩 <60 then 1 else 0 end )
from tb group by 课程ID,课程名称
[解决办法]
-------------------
按平均成绩从高到低顺序,列出所有学生的四门(数学,语文,英语,政治)
应该怎么做呀,连四个表?帮忙呀

设表为tb
select * from
(select distinct 学生ID,学生姓名,
语文=isnull(select 成绩 from tb where 学生ID=a.学生ID and 课程名称=语文,0),
数学=isnull(select 成绩 from tb where 学生ID=a.学生ID and 课程名称=数学,0),
政治=isnull(select 成绩 from tb where 学生ID=a.学生ID and 课程名称=政治,0),
英语=isnull(select 成绩 from tb where 学生ID=a.学生ID and 课程名称=英语,0)
from tb a
) b order by (语文+数学+政治+英语)

热点排行