数据库的几道题 sql语言
14、已有表student、grade和makeup ,分别存放学生信息、成绩和补考成绩,相应外键约束已建为RESTRICT, 字段结构如下:
student :id(学号,char 12),name(姓名,char 8)
grade:id(学号,char 12),course(课程名,char 30),grade(成绩,decimal)。
Makeup:id(学号,char 12),course(课程名,char 30),grade(成绩,decimal),degree(补考次数,int)。
(1)、王丽同学新入学,学号为“***********”,“高等数学”成绩为78,请用sql语句插入相应记录。(注意插入记录表的顺序)
(2)、续上次高等数学考试后,王丽同学又完成了“大学英语”考试,第一次成绩为50,第n次补考成绩为65(n不知)。请用sql语句插入补考记录。
(3)、已有基于外部数据源的数据窗口dw_grade,内部字段为course(课程名,char 30),grade(成绩,decimal),请用POWERSCRIPT语句取出王丽同学的各科有效成绩并放入dw_grade。(注意王丽同学可能又进行了其它科目的考试)
15、用POWERSCRIPT实现库存物资的ABC分类法。已有库存资金表kczj(wzbm物资编码,je 资金占用),分析后将结果记录到库存分类表kcfl (lb 类别, wzbm 物资编码)中, 其中A物资占用资金超过75%,B物资占用资金超过20%,C物资占用资金小于5%。(要考虑数据库出错处理)
foxpro程序,供参考:
set talk off
public hao,kind,cash,rate
kind=""
cash=0
rate=0
total=0.00
use wuzi.dbf
sum je to total
select 物资编号,金额 from wuzi order by 金额
scan
hao=物资编号
cash=cash+金额
rate=cash/total
do case
case rate<0.05
kind="C"
case rate>=0.05 and rate<0.25
kind="B"
otherwise
kind="A"
endcase
insert into kind(物资编号,类别) values(hao,kind)
endscan
close all
参考答案:14、已有表student、grade和makeup ,分别存放学生信息、成绩和补考成绩,相应外键约束已建为RESTRICT, 字段结构如下:
student :id(学号,char 12),name(姓名,char 8)
grade:id(学号,char 12),course(课程名,char 30),grade(成绩,decimal)。
Makeup:id(学号,char 12),course(课程名,char 30),grade(成绩,decimal),degree(补考次数,int)。
(1)、王丽同学新入学,学号为“***********”,“高等数学”成绩为78,请用sql语句插入相应记录。(注意插入记录表的顺序)
insert student(id, name) values ("***********", "王丽");
insert grade(id, course, grade) values ("***********", "高等数学", 78);
insert makeup(id, course, grade, degree) values ("***********", "高等数学", 78, 0);
(2)、续上次高等数学考试后,王丽同学又完成了“大学英语”考试,第一次成绩为50,第n次补考成绩为65(n不知)。请用sql语句插入补考记录。
count = select degree from makeup where id = "***********" and course = "大学英语";
insert makeup(id, course, grade, degree) values ("***********", "大学英语", 65, count+1);
(3)、已有基于外部数据源的数据窗口dw_grade,内部字段为course(课程名,char 30),grade(成绩,decimal),请用POWERSCRIPT语句取出王丽同学的各科有效成绩并放入dw_grade。(注意王丽同学可能又进行了其它科目的考试)
15、用POWERSCRIPT实现库存物资的ABC分类法。已有库存资金表kczj(wzbm物资编码,je 资金占用),分析后将结果记录到库存分类表kcfl (lb 类别, wzbm 物资编码)中, 其中A物资占用资金超过75%,B物资占用资金超过20%,C物资占用资金小于5%。(要考虑数据库出错处理)
foxpro程序,供参考:
set talk off
public hao,kind,cash,rate
kind=""
cash=0
rate=0
total=0.00
use wuzi.dbf
sum je to total
select 物资编号,金额 from wuzi order by 金额
scan
hao=物资编号
cash=cash+金额
rate=cash/total
do case
case rate<0.05
kind="C"
case rate>=0.05 and rate<0.25
kind="B"
otherwise
kind="A"
endcase
insert into kind(物资编号,类别) values(hao,kind)
endscan
close all