

CREATE OR REPLACE FUNCTION mostValuableClerk(months IN NUMBER) RETURN NUMBER
IS
    startMonat DATE;
BEGIN
    startMonat := ADD_MONTHS(SYSDATE,-months);

    SELECT MAX(Anzahl) FROM
    (
    SELECT DISTINCT CLERKID, COUNT(CLERKID) AS Anzahl
        From
        (
        SELECT clcl.CLERKID
         FROM CLEANINGCLERK clcl
         INNER JOIN CLEANINGPLAN clpl ON clcl.CLEANINGPLANID = clpl.CLEANINGPLANID
         WHERE clpl."date" >= startMonat
         )
    GROUP BY CLERKID
    );

    return null;
END;