ここでSQL文を使用してカーソルに挿入しようとしています。残念ながら、この特定の割り当てにRank()関数を使用することはできません。カーソルをランク付けして使用するPL/SQLプログラム
CREATE or REPLACE PROCEDURE RankGPA
IS
vSnum student.snum%type;
vSname student.sname%type;
vGPA student.GPA%type;
vMajor student.major%type;
CURSOR rankGPA_cursor IS
SELECT s1.snum, s1.sname, s1.gpa, count(s2.gpa) + 1 as rank, s1.major
FROM students s1
LEFT JOIN students s2
ON s1.GPA < s2.GPA
GROUP BY s1.snum, s1.sname, s1.gpa, s1.Major
ORDER BY 4;
BEGIN
OPEN rankGPA_cursor;
FETCH rankGPA_cursor INTO vSnum, vSname, vGPA, vMajor;
END;
私はこのような出力を取得しようとしている:
Rank SNUM SNAME GPA MAJOR
**** **** ***** *** *****
1 101 Bob 4 ENGR
2 102 Cari 3.5 ENGL
学生用テーブルの別名が同じです(LEFT JOIN学生** s2 **) – Camille
ありがとう、私はそれを編集しました! – Lizzie
あなたはカーソルから1行しか取り出しておらず、何もしていません。アウトプットはどこに行くのですか?なぜあなたはPL/SQLをまったく使用していますか?なぜあなたは 'rank()'を使うことができないのですか?あなたは言われていない、あるいはあなたは知らないのですか?他の分析関数はどうですか? –