Compare commits

...

2 commits

Author SHA1 Message Date
Torben Zwinge 70c021120b Prozeduren/ Funktionen 2023-05-25 14:57:49 +02:00
Torben Zwinge 4221500515 Prozeduren/ Funktionen 2023-05-25 14:57:43 +02:00
9 changed files with 117 additions and 34 deletions

6
.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

17
.idea/dataSources.xml Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="Studi DB" uuid="56b560f1-5b5c-4a26-a75a-32cc5b3745ea">
<driver-ref>oracle.19</driver-ref>
<synchronize>true</synchronize>
<remarks>Nice</remarks>
<auto-commit>false</auto-commit>
<jdbc-driver>oracle.jdbc.OracleDriver</jdbc-driver>
<jdbc-url>jdbc:oracle:thin:@studidb.gm.th-koeln.de:1521:vlesung</jdbc-url>
<jdbc-additional-properties>
<property name="dbms_output" value="true" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

8
.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/sgd-praktikum.iml" filepath="$PROJECT_DIR$/.idea/sgd-praktikum.iml" />
</modules>
</component>
</project>

8
.idea/sgd-praktikum.iml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="DBE_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

7
.idea/sqldialects.xml Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/SQL/Schema.sql" dialect="GenericSQL" />
<file url="PROJECT" dialect="Oracle" />
</component>
</project>

6
.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View file

@ -9,7 +9,7 @@ IS
BEGIN
startMonat := ADD_MONTHS(SYSDATE,-months);
SELECT CLERKID, MAX(Anzahl) INTO finalclerkid, maxanzahlcleanings FROM
SELECT CLERKID, Anzahl INTO finalclerkid, maxanzahlcleanings FROM
(
SELECT DISTINCT CLERKID, COUNT(CLERKID) AS Anzahl
From
@ -19,9 +19,9 @@ BEGIN
INNER JOIN CLEANINGPLAN clpl ON clcl.CLEANINGPLANID = clpl.CLEANINGPLANID
WHERE clpl."date" >= startMonat
)
GROUP BY CLERKID
GROUP BY CLERKID ORDER BY Anzahl desc
)
GROUP BY CLERKID;
WHERE ROWNUM <= 1;
return finalclerkid;
END;
@ -40,15 +40,21 @@ END;
create or replace procedure rooms(clientz in number, months in number)
is
startMonth date;
begin
startMonth := add_months(sysdate, months);
CURSOR roomCursor is
select br.ROOMNUMBER
from BOOKINGROOM br inner join (
select *
from BOOKING inner join CLIENT
on BOOKING.CLIENTID = CLIENT.PERSONID
where CLIENT.PERSONID = clientz and BOOKING.ARRIVALDATE >= startMonth
where CLIENT.PERSONID = clientz and BOOKING.ARRIVALDATE >= add_months(sysdate, -months)
) bookings on br.BOOKINGID = bookings.BOOKINGID;
begin
FOR number IN roomCursor
LOOP
DBMS_OUTPUT.PUT_LINE(number.ROOMNUMBER);
END LOOP;
end rooms;

View file

@ -70,37 +70,47 @@ INSERT INTO ROOM VALUES (room_seq.nextval, 5, 'JUNIOR SUITE', 50, 1, 4);
INSERT INTO ROOM VALUES (room_seq.nextval, 6, 'PRESIDENT SUITE', 80, 0, 6);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-03', 'YYYY-MM-DD'), 90, 1);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-03', 'YYYY-MM-DD'), 90, 1);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-04', 'YYYY-MM-DD'), 120, 4);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-04', 'YYYY-MM-DD'), 120, 5);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-05', 'YYYY-MM-DD'), 180, 6);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-05', 'YYYY-MM-DD'), 90, 2);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-06', 'YYYY-MM-DD'), 90, 2);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-08', 'YYYY-MM-DD'), 180, 8);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-08', 'YYYY-MM-DD'), 90, 1);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-05-08', 'YYYY-MM-DD'), 240, 10);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-04-03', 'YYYY-MM-DD'), 90, 1);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-03-04', 'YYYY-MM-DD'), 120, 4);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-02-04', 'YYYY-MM-DD'), 120, 5);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2023-01-05', 'YYYY-MM-DD'), 180, 6);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2022-12-05', 'YYYY-MM-DD'), 90, 2);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2022-11-06', 'YYYY-MM-DD'), 90, 2);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2022-10-08', 'YYYY-MM-DD'), 180, 8);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2022-09-08', 'YYYY-MM-DD'), 90, 1);
INSERT INTO CLEANINGPLAN VALUES (cleaningplan_seq.nextval, TO_DATE('2022-08-08', 'YYYY-MM-DD'), 240, 10);
INSERT INTO CLEANINGCLERK VALUES (1, 1);
INSERT INTO CLEANINGCLERK VALUES (2, 2);
INSERT INTO CLEANINGCLERK VALUES (3, 3);
INSERT INTO CLEANINGCLERK VALUES (4, 4);
INSERT INTO CLEANINGCLERK VALUES (5, 5);
INSERT INTO CLEANINGCLERK VALUES (1, 6);
INSERT INTO CLEANINGCLERK VALUES (2, 7);
INSERT INTO CLEANINGCLERK VALUES (1, 2);
INSERT INTO CLEANINGCLERK VALUES (2, 3);
INSERT INTO CLEANINGCLERK VALUES (2, 4);
INSERT INTO CLEANINGCLERK VALUES (2, 5);
INSERT INTO CLEANINGCLERK VALUES (3, 6);
INSERT INTO CLEANINGCLERK VALUES (3, 7);
INSERT INTO CLEANINGCLERK VALUES (3, 8);
INSERT INTO CLEANINGCLERK VALUES (4, 9);
INSERT INTO CLEANINGCLERK VALUES (5, 10);
INSERT INTO CLEANINGCLERK VALUES (3, 9);
INSERT INTO CLEANINGCLERK VALUES (4, 10);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-01', 'YYYY-MM-DD'), TO_DATE('2023-05-05', 'YYYY-MM-DD'), 700, 'No Pension', 0, 6);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-08', 'YYYY-MM-DD'), TO_DATE('2023-05-10', 'YYYY-MM-DD'), 700, 'No Pension', 1, 7);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-06-01', 'YYYY-MM-DD'), TO_DATE('2023-06-05', 'YYYY-MM-DD'), 700, 'No Pension', 0, 8);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-24', 'YYYY-MM-DD'), TO_DATE('2023-06-02', 'YYYY-MM-DD'), 700, 'No Pension', 1, 9);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-21', 'YYYY-MM-DD'), TO_DATE('2023-05-31', 'YYYY-MM-DD'), 700, 'No Pension', 0, 10);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-06-10', 'YYYY-MM-DD'), TO_DATE('2023-06-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 11);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-18', 'YYYY-MM-DD'), TO_DATE('2023-05-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 12);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-12', 'YYYY-MM-DD'), TO_DATE('2023-05-13', 'YYYY-MM-DD'), 700, 'No Pension', 0, 13);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-06', 'YYYY-MM-DD'), TO_DATE('2023-05-07', 'YYYY-MM-DD'), 700, 'No Pension', 1, 14);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-05-09', 'YYYY-MM-DD'), TO_DATE('2023-05-19', 'YYYY-MM-DD'), 700, 'No Pension', 0, 15);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-04-24', 'YYYY-MM-DD'), TO_DATE('2023-05-10', 'YYYY-MM-DD'), 700, 'No Pension', 1, 7);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-04-18', 'YYYY-MM-DD'), TO_DATE('2023-06-05', 'YYYY-MM-DD'), 700, 'No Pension', 0, 8);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-04-15', 'YYYY-MM-DD'), TO_DATE('2023-06-02', 'YYYY-MM-DD'), 700, 'No Pension', 1, 9);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-03-21', 'YYYY-MM-DD'), TO_DATE('2023-05-31', 'YYYY-MM-DD'), 700, 'No Pension', 0, 10);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-03-10', 'YYYY-MM-DD'), TO_DATE('2023-06-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 11);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-03-18', 'YYYY-MM-DD'), TO_DATE('2023-05-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 12);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-03-12', 'YYYY-MM-DD'), TO_DATE('2023-05-13', 'YYYY-MM-DD'), 700, 'No Pension', 0, 13);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-02-06', 'YYYY-MM-DD'), TO_DATE('2023-05-07', 'YYYY-MM-DD'), 700, 'No Pension', 1, 14);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2023-02-09', 'YYYY-MM-DD'), TO_DATE('2023-05-19', 'YYYY-MM-DD'), 700, 'No Pension', 0, 15);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-12-01', 'YYYY-MM-DD'), TO_DATE('2023-05-05', 'YYYY-MM-DD'), 700, 'No Pension', 0, 6);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-11-08', 'YYYY-MM-DD'), TO_DATE('2023-05-10', 'YYYY-MM-DD'), 700, 'No Pension', 1, 7);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-10-01', 'YYYY-MM-DD'), TO_DATE('2023-06-05', 'YYYY-MM-DD'), 700, 'No Pension', 0, 8);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-09-24', 'YYYY-MM-DD'), TO_DATE('2023-06-02', 'YYYY-MM-DD'), 700, 'No Pension', 1, 9);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-08-21', 'YYYY-MM-DD'), TO_DATE('2023-05-31', 'YYYY-MM-DD'), 700, 'No Pension', 0, 10);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-07-10', 'YYYY-MM-DD'), TO_DATE('2023-06-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 11);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-06-18', 'YYYY-MM-DD'), TO_DATE('2023-05-20', 'YYYY-MM-DD'), 700, 'No Pension', 1, 12);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-05-12', 'YYYY-MM-DD'), TO_DATE('2023-05-13', 'YYYY-MM-DD'), 700, 'No Pension', 0, 13);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-04-06', 'YYYY-MM-DD'), TO_DATE('2023-05-07', 'YYYY-MM-DD'), 700, 'No Pension', 1, 14);
INSERT INTO BOOKING VALUES (BOOKING_SEQ.nextval, TO_DATE('2022-03-09', 'YYYY-MM-DD'), TO_DATE('2023-05-19', 'YYYY-MM-DD'), 700, 'No Pension', 0, 15);
INSERT INTO BOOKINGROOM VALUES (1, 1);
INSERT INTO BOOKINGROOM VALUES (1, 2);

15
SQL/TestProcedure.sql Normal file
View file

@ -0,0 +1,15 @@
BEGIN
DBMS_OUTPUT.PUT_LINE('Wertvollster Mitarbeiter:');
DBMS_OUTPUT.PUT_LINE(mostValuableClerk(5));
DBMS_OUTPUT.PUT_LINE('Letzten Buchungen:');
getLastBookings(5);
DBMS_OUTPUT.PUT_LINE('Gebuchte Zimmer:');
rooms(10, 5);
END;