----------------------------------------Problem 1
SELECT student.sno,course.cno,grade.cgrade
FroM student,course,grade,
(SELECT cno,Max(cgrade) maxgrade
FroM grade
GROUP BY cno) M
WHERE student.sno = grade.sno AND
course.cno = grade.cno AND
grade.cno = M.cno AND
grade.cgrade = M.maxgrade;
------------------------------------------Problem 2
INSERT INTO re_exam
SELECT sno,cno,re_grade,sysdate
FROM grade WHERE cgrade<60;
-----------------------------------------Problem 3
CREATE OR REPLACE PROCEDURE sumcredits IS
BEGIN
FOR stu_cur IN (SELECT Sum(ccredit) SCC,sno
FROM course,grade
WHERE grade.cno = course.cno AND
cgrade>=60
GROUP BY sno)
LOOP
UPDATE student SET scredits = stu_cur.SCC
WHERE sno = stu_cur.sno;
END LOOP;
END sumcredits;
---------------------------------------------Problem 4
CREATE OR REPLACE TRIGGER update_exam
AFTER INSERT OR UPDATE ON re_exam
FOR EACH ROW
BEGIN
IF INSERTING THEN
UPDATE grade SET cgrade=:new.re_gradede
WHERE grade.sno = :new.sno and grade.cno=:new.cno;
ELSIF UPDATING THEN
UPDATE grade SET cgrade=:new.re_grade,comments='补考记录'
WHERE grade.sno = :new.sno and
grade.cno = :new.cno;
END IF;
END update_exam;
1 . select 学生,期末成绩 from 成绩登记 orderby 期末成绩;
2 . select 学生,期末成绩 from 成绩登记 where 期末成绩<=60;
3 . select 学生,期末成绩 from 成绩登记 where 期末成绩>=60
update();
查询oracle怎么实现?谢谢 select * from ( select stcdt,ymdhm,zr 这能查出来数据吗? 同时一个字段要等于3个值? 上面的语句应该是你要的~!
insert into 补考记录
values(sysdate,select course,student,grade from grades where course<60);