数据结构 运动会分数统计

2024-12-25 18:18:05
推荐回答(2个)
回答1:

这个单纯的数据库就可以搞定了吧

你自己把相应的表建好,导入测试数据然后
那些要求都很容易就可以实现查询出来的啊。

比如有2个表。学生信息stuinfor和分数信息scoinfor,结构为
stuinfor
学校名 schname varchar2(20)
学生姓名 stuname varchar2(20)
性别 sex char(2) check in ('男'or'女')
参赛编号 stid number 主键

scoinfor
参赛编号 scid number 表stuinfor主键stid的外键
项目名 itemname varchar2(20)
名次 orderid number
成绩 grade number

1).可以输入各个项目的前三名或前五名的成绩
那么你就弄个按钮,可以输分数和项目名称,然后点击提交就实现
insert into scoinfor (scid,item,orderid,grade) values (参赛编号,项目名,名次,成绩)就OK了。

2).能统计各学校总分
有5个名次的项目
select itemname from scoinfor group by itemname where count(orderid) =5;

有3个名次的项目
select itemname from scoinfor group by itemname where count(orderid) =3;

view C,连接两表
select schname,stid,itemname,orderid from stuinfor,scoinfor where stid = scid;

执行查询语句
select AA+BB as SUMscore from
(select sum(decode(C.orderid,1,5,2,3,3,2)) as ID5 from C where C.itemname in (select itemname from scoinfor group by itemname where count(orderid) =5) group by C.schname) AA join
(select sum(decode(C.orderid,1,7,2,5,3,3,4,2,5,1)) as ID3 from C where C.itemname in (select itemname from scoinfor group by itemname where count(orderid) =3) group by C.schname) BB
on AA.schname = BB.schname;
就能得到各个学校的总分了,然后再显示出来就OK。

至于后面的别的需求,就是分解为很多个小查询,然后再绑定不同的值,再简单加减乘除就可以得出来了。上面的查询有点复杂,当然也可以分解,再计算。

回答2:

存储结构:学生自己根据系统功能要求自己设计....在这里找人写作业啊??
BS!!