24344-计数考勤函数错误

wmvff8tz  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(279)

嘿,伙计们,我有一个问题,我想在甲骨文中创建一个函数,它将计算出席人数(多少学科已注册一名学生)。你能给我个提示吗?我不知道我的语法是否正确?

CREATE OR REPLACE FUNCTION num_of_attendance (id_student IN NUMBER)
RETURN NUMBER
IS total_number_of_attendance NUMBER DEFAULT 0;
BEGIN 
    WITH attendance AS
    (
        SELECT id_student, code_course, COUNT(DISTINCT code_subject)
        FROM STUDENT NATURAL INNER JOIN attendance NATURAL INNER JOIN course NATURAL INNER JOIN course_subject NATURAL INNER JOIN subject
    );
    RETURN total_number_of_attendance;
END;
/
wnrlj8wa

wnrlj8wa1#

首先尝试在函数外部运行sql语句。
此sql语句是否运行正常?

WITH attendance AS
    (
        SELECT id_student, code_course, COUNT(DISTINCT code_subject)
        FROM STUDENT NATURAL INNER JOIN attendance NATURAL INNER JOIN course NATURAL INNER JOIN course_subject NATURAL INNER JOIN subject
    );

其次,如果需要从函数返回值,则需要使用 INTO variable 具有以下一般语法的子句:

SELECT ... INTO variable FROM ... WHERE ...

相关问题