oracle查询男生的平均分,查询出所有课程的平均分,人数

set serveroutput on

declare

count1 number;

count2 number;

count3 number;

avggrade number;

cdno number;

csno number;

--cdname  varchar2(20):='大学物理';

cdname  varchar2(20);

pdname varchar2(20);

cursor cdep is select dno,dname from dep;

cursor csc(pcname varchar2,csno number)

is select grade from sc where cno=(select cno from course where cname =pcname)

and sno in (select sno from student where dno =csno);

pgrade sc.grade%type;

cursor ccourse is select cname from course order by cno;

begin

open ccourse ;

loop

fetch ccourse into cdname;

exit when ccourse%notfound;

open cdep;

loop

fetch cdep into cdno,pdname;

exit when cdep%notfound;

count1 :=0;

count2 :=0;

count3 :=0;

select avg(grade) into avggrade from sc where cno=(select cno from course where cname =cdname)

and sno in (select sno from student where dno =cdno);

open csc(cdname,cdno);

loop

fetch csc into pgrade;

exit when csc%notfound;

if pgrade < 60 then count1:=count1+1;

elsif pgrade >60 and pgrade <85 then count2:=count2+1;

else count3:=count3+1;

end if ;

end loop;

close csc;

insert into msg1 values(cdname,pdname,count1,count2,count3,avggrade);

end loop;

close cdep;

end loop ;

close ccourse;

commit;

end;

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值