PL/SQLに関しては、私は非常に「初心者」ですが、クエリだけでなく、具体的にPL/SQLコード(DECLARE/BEGIN/など)を作成する必要があります。
うまくいけば、残りの問題を把握できるようになる良い例を1つ見つけようとしています。これが私が現在理解しようとしているものです:
各学生の合計単位数を計算する PL/SQL プログラムを作成します。注: 学生が F を取得したコースは単位としてカウントされません。成績が低かったクラスを再受講した場合、単位としてカウントされるのは 1 回のみです。出力には、studentnum と合計クレジットが含まれている必要があります。
Student-schema =(studentnum, name, standing, gpa, major)
Class-schema = (schedulenum, semester, department, classnum, days, time, place, enrollment)
Instructor-schema = (name, department, office)
Teaches-schema = (name, schedulenum, semester)
Taking-schema = (studentnum, schedulenum, semester, grade)
これが私の哀れな試みの1つです:
DECLARE
stud_id student.studentnum%TYPE;
total number(10);
BEGIN
FOR count IN (SELECT* FROM taking)
LOOP
SELECT studentnum, count(*) total
INTO stud_id, total
WHERE grade >= 1;
END LOOP;
END;
/
上記のもので、私が間違っているか正しいかを識別してください。1行目で「正確なフェッチが要求された行数を超えて返されます」というエラーが表示されます。以前にこのエラーが発生し、forループで解決すると考えていました。明らかに私は間違っていました。正しくクエリを実行したとしても、これがどのように結果を正常に出力するかさえわかりません。私はとても迷っており、少しの方向性が大いに役立ちます。