sgd-praktikum/SQL/PLSQL.sql

38 lines
956 B
SQL

CREATE OR REPLACE FUNCTION mostValuableClerk(months IN NUMBER) RETURN NUMBER
IS
startMonat DATE;
finalclerkid NUMBER;
maxanzahlcleanings NUMBER;
BEGIN
startMonat := ADD_MONTHS(SYSDATE,-months);
SELECT CLERKID, MAX(Anzahl) INTO finalclerkid, maxanzahlcleanings 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
)
GROUP BY CLERKID;
return finalclerkid;
END;
CREATE OR REPLACE PROCEDURE getLastBookings(months IN NUMBER)
IS
CURSOR bookingsCursor IS SELECT BOOKINGID FROM BOOKING WHERE ARRIVALDATE >= ADD_MONTHS(SYSDATE,-months);
BEGIN
FOR booking IN bookingsCursor
LOOP
DBMS_OUTPUT.PUT_LINE(booking.BOOKINGID);
END LOOP;
END;