DROP TABLE IF EXISTS "ΝΟΣΟΚΟΜΕΙΟ" CASCADE;
DROP TABLE IF EXISTS "ΑΣΘΕΝΗΣ" CASCADE;
DROP TABLE IF EXISTS "ΙΑΤΡΟΣ" CASCADE;
DROP TABLE IF EXISTS "ΕΞΕΤΑΣΗ" CASCADE;
DROP TABLE IF EXISTS "ΔΙΑΓΝΩΣΗ" CASCADE;
DROP TABLE IF EXISTS "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" CASCADE;
DROP TABLE IF EXISTS "ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ" CASCADE;
DROP TABLE IF EXISTS "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ" CASCADE;
 
-- Δημιουργία Πίνακα { ΝΟΣΟΚΟΜΕΙΟ }:
 
CREATE TABLE "ΝΟΣΟΚΟΜΕΙΟ"
("ΚΩΔΙΚΟΣ_ΝΟΣ" INT NOT NULL,
"ΟΝΟΜΑ_ΝΟΣ" VARCHAR(60),
"ΠΟΛΗ_ΝΟΣ" VARCHAR(30),
-- "ΠΟΛΗ_ΝΟΣ" VARCHAR(30) CHECK ("ΠΟΛΗ_ΝΟΣ" = 'ΠΑΤΡΑ' OR "ΠΟΛΗ_ΝΟΣ" = 'ΑΘΗΝΑ' OR "ΠΟΛΗ_ΝΟΣ" = 'ΘΕΣΣΑΛΟΝΙΚΗ'),
"ΤΗΛΕΦΩΝΟ_ΝΟΣ" VARCHAR(10),
"ΔΙΕΥΘΥΝΣΗ_ΝΟΣ" VARCHAR(50),
-- UNIQUE ("ΟΝΟΜΑ_ΝΟΣ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΝΟΣ"));
 
-- Δημιουργία του Πίνακα { ΑΣΘΕΝΗΣ }:
 
CREATE TABLE "ΑΣΘΕΝΗΣ"
("ΚΩΔΙΚΟΣ_ΑΣΘ" INT NOT NULL,
"ΕΠΩΝΥΜΟ_ΑΣΘ" VARCHAR(40),
"ΟΝΟΜΑ_ΑΣΘ" VARCHAR(20),
"ΔΙΕΥΘΥΝΣΗ_ΑΣΘ" VARCHAR(50),
"ΤΗΛΕΦΩΝΟ_ΑΣΘ" VARCHAR(10),
-- UNIQUE ("ΤΗΛΕΦΩΝΟ_ΑΣΘ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΑΣΘ"));
 
-- Δημιουργία Πίνακα { ΙΑΤΡΟΣ }:
 
CREATE TABLE "ΙΑΤΡΟΣ"
("ΚΩΔΙΚΟΣ_ΙΑΤ" INT NOT NULL,
"ΕΠΩΝΥΜΟ_ΙΑΤ" VARCHAR(40),
"ΟΝΟΜΑ_ΙΑΤ" VARCHAR(20),
"ΔΙΕΥΘΥΝΣΗ_ΙΑΤ" VARCHAR(50),
"ΤΗΛΕΦΩΝΟ_ΙΑΤ" VARCHAR(10),
"ΚΩΔ_ΝΟΣ_ΕΡΓ" INT,
-- UNIQUE ("ΤΗΛΕΦΩΝΟ_ΙΑΤ"),
FOREIGN KEY ("ΚΩΔ_ΝΟΣ_ΕΡΓ") REFERENCES "ΝΟΣΟΚΟΜΕΙΟ"("ΚΩΔΙΚΟΣ_ΝΟΣ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΙΑΤ"));
 
-- Δημιουργία του Πίνακα { ΕΞΕΤΑΣΗ }:
 
CREATE TABLE "ΕΞΕΤΑΣΗ"
("ΚΩΔΙΚΟΣ_ΕΞΕ" INT NOT NULL,
"ΠΕΡΙΓΡΑΦΗ_ΕΞΕ" VARCHAR(60),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΕΞΕ"));
 
-- Δημιουργία του Πίνακα { ΔΙΑΓΝΩΣΗ }:
 
CREATE TABLE "ΔΙΑΓΝΩΣΗ"
("ΚΩΔΙΚΟΣ_ΔΙΑ" INT NOT NULL,
"ΠΕΡΙΓΡΑΦΗ_ΔΙΑ" VARCHAR(60),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΔΙΑ"));
 
-- Δημιουργία του Πίνακα { ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ }:
 
CREATE TABLE "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"
("ΚΩΔΙΚΟΣ_ΕΠΙ" INT NOT NULL,
"ΚΩΔΙΚΟΣ_ΑΣΘ" INT,
"ΚΩΔΙΚΟΣ_ΝΟΣ" INT,
"ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ" DATE,
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΑΣΘ") REFERENCES "ΑΣΘΕΝΗΣ"("ΚΩΔΙΚΟΣ_ΑΣΘ"),
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΝΟΣ") REFERENCES "ΝΟΣΟΚΟΜΕΙΟ"("ΚΩΔΙΚΟΣ_ΝΟΣ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΕΠΙ"));
 
-- Δημιουργία του Πίνακα { ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ }:
 
CREATE TABLE "ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ"
("ΚΩΔΙΚΟΣ_ΕΠΙ" INT NOT NULL,
"ΚΩΔΙΚΟΣ_ΕΞΕ" INT NOT NULL,
"ΗΜΕΡΟΜΗΝΙΑ_ΕΞΕ" DATE NOT NULL,
"ΑΠΟΤΕΛΕΣΜΑ_ΕΞΕ" VARCHAR(20),
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΕΠΙ") REFERENCES "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"("ΚΩΔΙΚΟΣ_ΕΠΙ"),
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΕΞΕ") REFERENCES "ΕΞΕΤΑΣΗ"("ΚΩΔΙΚΟΣ_ΕΞΕ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΕΠΙ", "ΚΩΔΙΚΟΣ_ΕΞΕ", "ΗΜΕΡΟΜΗΝΙΑ_ΕΞΕ"));
 
-- Δημιουργία του Πίνακα { ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ }:
 
CREATE TABLE "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"
("ΚΩΔΙΚΟΣ_ΕΠΙ" INT NOT NULL,
"ΚΩΔΙΚΟΣ_ΔΙΑ" INT NOT NULL,
"ΗΜΕΡΟΜΗΝΙΑ_ΔΙΑ" DATE NOT NULL,
"ΣΧΟΛΙΑ_ΔΙΑ" VARCHAR(100),
"ΚΩΔΙΚΟΣ_ΙΑΤ" INT NOT NULL,
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΕΠΙ") REFERENCES "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"("ΚΩΔΙΚΟΣ_ΕΠΙ"),
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΔΙΑ") REFERENCES "ΔΙΑΓΝΩΣΗ"("ΚΩΔΙΚΟΣ_ΔΙΑ"),
FOREIGN KEY ("ΚΩΔΙΚΟΣ_ΙΑΤ") REFERENCES "ΙΑΤΡΟΣ"("ΚΩΔΙΚΟΣ_ΙΑΤ"),
PRIMARY KEY("ΚΩΔΙΚΟΣ_ΕΠΙ", "ΚΩΔΙΚΟΣ_ΔΙΑ", "ΚΩΔΙΚΟΣ_ΙΑΤ"));
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΝΟΣΟΚΟΜΕΙΟ }:
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (100, 'ΑΓΙΟΣ ΑΝΔΡΕΑΣ', 'ΠΑΤΡΑ', '2610456223', 'ΓΟΥΝΑΡΗ 54');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (101, 'ΝΟΣΗΜΑΤΩΝ ΘΩΡΑΚΟΣ', 'ΠΑΤΡΑ', '2610223444', 'ΕΓΛΥΚΑΔΑΣ 33');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (102, 'ΕΥΑΓΓΕΛΙΣΜΟΣ', 'ΑΘΗΝΑ', '2103342256', 'ΒΑΣΙΛΙΣΗΣ ΣΟΦΙΑΣ 123');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (104, 'ΑΧΕΠΑ', 'ΘΕΣΣΑΛΟΝΙΚΗ', '2310224466', 'ΤΣΙΜΙΣΚΗ 22');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (105, 'ΠΑΝΕΠΙΣΤΗΜΙΑΚΟ ΝΟΣΟΚΟΜΕΙΟ ΡΙΟΥ', 'ΡΙΟ', '2610999887', 'ΗΡΩΩΝ ΠΟΛΥΤΕΧΝΕΙΟΥ 2');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (106, 'ΑΓΛΑΪΑ ΚΥΡΙΑΚΟΥ', 'ΑΘΗΝΑ', '2102345678', 'ΒΑΣΙΛΕΩΣ ΓΕΩΡΓΙΟΥ 23');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (107, 'ΚΑΡΑΜΑΝΔΑΝΕΙΟ', 'ΠΑΤΡΑ', '2610666554', 'ΣΟΥΛΙΟΥ 34');
INSERT INTO "ΝΟΣΟΚΟΜΕΙΟ" VALUES (108, 'ΠΑΠΑΝΙΚΟΛΑΟΥ', 'ΘΕΣΣΑΛΟΝΙΚΗ', '2310234512', 'ΛΕΩΦΟΡΟΣ ΑΛΕΞΑΝΔΡΟΥ 2');
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΑΣΘΕΝΗΣ }:
INSERT INTO "ΑΣΘΕΝΗΣ" VALUES (30, 'ΧΡΙΣΤΟΠΟΥΛΟΣ', 'ΣΠΥΡΙΔΩΝ', 'ΠΑΤΡΑ, ΡΗΓΑ ΦΕΡΑΙΟΥ 15', '6944478933');
INSERT INTO "ΑΣΘΕΝΗΣ" VALUES (31, 'ΓΚΟΤΣΟΠΟΥΛΟΣ', 'ΒΑΣΙΛΗΣ', 'ΠΑΤΡΑ, ΑΓΥΑΣ 23', '6978845622');
INSERT INTO "ΑΣΘΕΝΗΣ" VALUES (37, 'ΣΑΚΟΠΟΥΛΟΣ', 'ΣΠΥΡΙΔΩΝΑ', 'ΠΑΤΡΑ, ΘΕΣΣΑΛΟΝΙΚΗΣ 34', '6973422555');
-- INSERT INTO "ΑΣΘΕΝΗΣ" VALUES (36, 'ΑΚΟΥΜΙΑΝΑΚΗΣ', 'ΔΗΜΟΣΘΕΝΗΣ', 'ΗΡΑΚΛΕΙΟ, ΚΡΗΤΗΣ', '6978122555');
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΙΑΤΡΟΣ }:
INSERT INTO "ΙΑΤΡΟΣ" VALUES (1, 'ΓΕΩΡΓΟΠΟΥΛΟΣ', 'ΓΕΩΡΓΙΟΣ', 'ΠΑΤΡΕΩΣ 12', '6977856422', 100);
INSERT INTO "ΙΑΤΡΟΣ" VALUES (2, 'ΠΑΠΑΛΟΥΚΟΠΟΥΛΟΣ', 'ΙΩΑΝΝΗΣ', 'ΓΟΥΝΑΡΗ 34', '6783412655',101);
INSERT INTO "ΙΑΤΡΟΣ" VALUES (12, 'ΒΑΛΣΑΜΙΔΗΣ', 'ΣΤΑΥΡΟΣ', 'ΛΕΩΦΟΡΟΣ ΑΛΕΞΑΝΔΡΟΥ 256', '6973612988',108);
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΕΞΕΤΑΣΗ }:
INSERT INTO "ΕΞΕΤΑΣΗ" VALUES (1000, 'ΓΕΝΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΙΜΑΤΟΣ');
INSERT INTO "ΕΞΕΤΑΣΗ" VALUES (1001, 'ΑΡΘΡΟΣΚΟΠΗΣΗ');
INSERT INTO "ΕΞΕΤΑΣΗ" VALUES (1010, 'ΕΓΚΕΦΑΛΟΓΡΑΦΗΜΑ');
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΔΙΑΓΝΩΣΗ }:
INSERT INTO "ΔΙΑΓΝΩΣΗ" VALUES (1000, 'ΧΟΛΥΣΤΕΡΙΝΗ-ΤΡΙΓΛΥΚΕΡΙΔΙΑ');
INSERT INTO "ΔΙΑΓΝΩΣΗ" VALUES (1001, 'ΑΡΘΡΙΤΙΔΑ');
INSERT INTO "ΔΙΑΓΝΩΣΗ" VALUES (1010, 'ΜΗ ΒΡΑΧΥΚΥΚΛΩΜΕΝΟΙ ΝΕΥΡΩΝΕΣ');
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ }:
INSERT INTO "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" VALUES (301, 30, 100, TO_DATE('2/2/2009', 'dd/mm/yyyy'));
INSERT INTO "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" VALUES (311, 31, 101, TO_DATE('2/3/2009', 'dd/mm/yyyy'));
INSERT INTO "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" VALUES (371, 37, 106, TO_DATE('6/5/2008', 'dd/mm/yyyy'));
INSERT INTO "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" VALUES (381, 37, 100, TO_DATE('7/3/2005', 'dd/mm/yyyy'));
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ }:
INSERT INTO "ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ" VALUES (301, 1000, TO_DATE('5/2/2009', 'dd/mm/yyyy'), 'ΚΑΛΟ');
INSERT INTO "ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ" VALUES (311, 1001, TO_DATE('5/3/2009', 'dd/mm/yyyy'), 'ΜΕΤΡΙΟ');
-- INSERT INTO "ΕΞΕΤΑΣΗ_ΑΣΘΕΝΗ" VALUES (371, 1008, TO_DATE('8/5/2008', 'dd/mm/yyyy'), 'ΚΑΛΟ');
 
-- Εισαγωγή Στοιχείων στον Πίνακα { ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ }:
INSERT INTO "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ" VALUES (301, 1000, TO_DATE('6/2/2009', 'dd/mm/yyyy'), 'ΕΛΑΦΡΑ ΔΙΑΙΤΑ', 1);
INSERT INTO "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ" VALUES (311, 1001, TO_DATE('6/3/2009', 'dd/mm/yyyy'), 'ΌΧΙ ΑΛΑΤΙ ΣΤΑ ΦΑΓΗΤΑ', 2);
INSERT INTO "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ" VALUES (371, 1010, TO_DATE('9/5/2008', 'dd/mm/yyyy'), 'Γυμναστική - Φυσιοθεραπείες', 1);
INSERT INTO "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ" VALUES (381, 1000, TO_DATE('8/3/2005', 'dd/mm/yyyy'), 'ΝΑ ΑΠΟΦΕΥΓΟΝΤΑΙ ΚΑΡΥΚΕΥΜΑΤΑ ΚΑΙ ΣΑΛΤΣΕΣ', 1);
 
-- Ασκηση 8 (Queries I)
 
/*
1. Να βρεθούν τα νοσοκομεία που υπάρχουν εκτός της ΠΑΤΡΑΣ. 
*/
SELECT * 
FROM "ΝΟΣΟΚΟΜΕΙΟ" 
WHERE "ΠΟΛΗ_ΝΟΣ" <>'ΠΑΤΡΑ';
 
/*
2. Να βρεθούν οι ασθενείς που έχουν όνομα "ΣΠΥΡΙΔΩΝ" ή "ΒΑΣΙΛΗΣ". 
*/
SELECT "ΕΠΩΝΥΜΟ_ΑΣΘ", "ΟΝΟΜΑ_ΑΣΘ"
FROM "ΑΣΘΕΝΗΣ" 
WHERE "ΟΝΟΜΑ_ΑΣΘ" LIKE 'ΣΠΥΡΙΔΩΝ%'
OR "ΟΝΟΜΑ_ΑΣΘ" LIKE '%ΒΑΣΙΛΗΣ%';
 
/*
3. Υπολογίστε πόσα νοσοκομεία υπάρχουν στη βάση δεδομένων με έδρα την ΠΑΤΡΑ.
*/
SELECT COUNT(*) 
FROM "ΝΟΣΟΚΟΜΕΙΟ"
WHERE "ΠΟΛΗ_ΝΟΣ" = 'ΠΑΤΡΑ';
 
SELECT COUNT(*) AS "ΑΡΙΘΜΟΣ_ΝΟΣΟΚΟΜΕΙΩΝ"
FROM "ΝΟΣΟΚΟΜΕΙΟ"
WHERE "ΠΟΛΗ_ΝΟΣ" = 'ΠΑΤΡΑ';
 
/*
4. Να δοθούν σε αλφαβητική σειρά τα ονοματεπώνυμα των ιατρών που εργάζονται 
στο Νοσοκομείο ΑΓΙΟΣ ΑΝΔΡΕΑΣ.
*/ 
SELECT "ΟΝΟΜΑ_ΙΑΤ", "ΕΠΩΝΥΜΟ_ΙΑΤ"
FROM   "ΙΑΤΡΟΣ", "ΝΟΣΟΚΟΜΕΙΟ"
WHERE  "ΚΩΔ_ΝΟΣ_ΕΡΓ" = "ΚΩΔΙΚΟΣ_ΝΟΣ" 
AND "ΟΝΟΜΑ_ΝΟΣ" = 'ΑΓΙΟΣ ΑΝΔΡΕΑΣ'
ORDER BY "ΕΠΩΝΥΜΟ_ΙΑΤ", "ΟΝΟΜΑ_ΙΑΤ";
 
-- Alternate statement
 
SELECT "ΟΝΟΜΑ_ΙΑΤ", "ΕΠΩΝΥΜΟ_ΙΑΤ"
FROM   "ΙΑΤΡΟΣ"
WHERE  "ΚΩΔ_ΝΟΣ_ΕΡΓ" IN (
SELECT "ΚΩΔΙΚΟΣ_ΝΟΣ"
FROM "ΝΟΣΟΚΟΜΕΙΟ"
WHERE "ΟΝΟΜΑ_ΝΟΣ" = 'ΑΓΙΟΣ ΑΝΔΡΕΑΣ');
 
/* 
5. Να βρεθούν οι ασθενείς που έχουν επισκεφθεί το Νοσοκομείο ΑΓΙΟΣ ΑΝΔΡΕΑΣ. 
*/
SELECT "ΕΠΩΝΥΜΟ_ΑΣΘ", "ΟΝΟΜΑ_ΑΣΘ", "ΔΙΕΥΘΥΝΣΗ_ΑΣΘ", "ΤΗΛΕΦΩΝΟ_ΑΣΘ"
FROM   "ΝΟΣΟΚΟΜΕΙΟ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ", "ΑΣΘΕΝΗΣ" 
WHERE    "ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ"
AND "ΝΟΣΟΚΟΜΕΙΟ"."ΚΩΔΙΚΟΣ_ΝΟΣ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΝΟΣ"
AND "ΝΟΣΟΚΟΜΕΙΟ"."ΟΝΟΜΑ_ΝΟΣ" = 'ΑΓΙΟΣ ΑΝΔΡΕΑΣ';
 
/* 
6. Ποιοι γιατροί έχουν εξετάσει τον ασθενή ΧΡΙΣΤΟΠΟΥΛΟΣ ΣΠΥΡΙΔΩΝ; 
*/ 
SELECT  "ΕΠΩΝΥΜΟ_ΙΑΤ", "ΟΝΟΜΑ_ΙΑΤ", "ΙΑΤΡΟΣ"."ΚΩΔΙΚΟΣ_ΙΑΤ" 
FROM "ΙΑΤΡΟΣ", "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ", "ΑΣΘΕΝΗΣ"  
WHERE    "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"
AND "ΙΑΤΡΟΣ"."ΚΩΔΙΚΟΣ_ΙΑΤ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΙΑΤ"
AND "ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ"
AND  "ΑΣΘΕΝΗΣ"."ΕΠΩΝΥΜΟ_ΑΣΘ" ='ΧΡΙΣΤΟΠΟΥΛΟΣ'
AND "ΟΝΟΜΑ_ΑΣΘ" LIKE 'ΣΠΥΡΙΔΩΝ%';
 
-- Alternate statement
 
SELECT DISTINCT "ΕΠΩΝΥΜΟ_ΙΑΤ", "ΟΝΟΜΑ_ΙΑΤ", "ΙΑΤΡΟΣ"."ΚΩΔΙΚΟΣ_ΙΑΤ" 
FROM "ΙΑΤΡΟΣ", "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"  
WHERE    "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"
AND "ΙΑΤΡΟΣ"."ΚΩΔΙΚΟΣ_ΙΑΤ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΙΑΤ"
AND "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ" IN (
SELECT "ΚΩΔΙΚΟΣ_ΑΣΘ" 
FROM "ΑΣΘΕΝΗΣ"
WHERE "ΕΠΩΝΥΜΟ_ΑΣΘ" ='ΧΡΙΣΤΟΠΟΥΛΟΣ'
AND "ΟΝΟΜΑ_ΑΣΘ" LIKE 'ΣΠΥΡΙΔΩΝ%');
 
/*
7. Υπολογίστε πόσοι ασθενείς είχαν διάγνωση ΑΡΘΡΙΤΙΔΑ λαμβάνοντας υπόψη 
ότι πρέπει να προσμετρηθεί και η περίπτωση που ένας ασθενής μπορεί να 
έχει ασθενήσει περισσότερες φορές από την ίδια ασθένεια.
*/
SELECT "ΠΕΡΙΓΡΑΦΗ_ΔΙΑ", COUNT("ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ") as "ΠΛΗΘΟΣ"  
FROM "ΔΙΑΓΝΩΣΗ", "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ", "ΑΣΘΕΝΗΣ" 
WHERE ("ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ"
AND "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"
AND "ΔΙΑΓΝΩΣΗ"."ΚΩΔΙΚΟΣ_ΔΙΑ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΔΙΑ"
AND  "ΔΙΑΓΝΩΣΗ"."ΠΕΡΙΓΡΑΦΗ_ΔΙΑ" ='ΑΡΘΡΙΤΙΔΑ')
GROUP BY "ΔΙΑΓΝΩΣΗ"."ΠΕΡΙΓΡΑΦΗ_ΔΙΑ";
 
-- Αν θέλατε να βρείτε τα στοιχεία των ασθενών με διάγνωση ΑΡΘΡΙΤΙΔΑ 
-- απαιτείται μικρή τροποποίηση στο ερώτημα 
 
SELECT    "ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ", "ΑΣΘΕΝΗΣ"."ΕΠΩΝΥΜΟ_ΑΣΘ", "ΑΣΘΕΝΗΣ"."ΟΝΟΜΑ_ΑΣΘ"   
FROM "ΔΙΑΓΝΩΣΗ", "ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ", "ΑΣΘΕΝΗΣ" 
WHERE    ("ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ"
AND "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΕΠΙ"
AND "ΔΙΑΓΝΩΣΗ"."ΚΩΔΙΚΟΣ_ΔΙΑ"="ΔΙΑΓΝΩΣΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΔΙΑ"
AND "ΔΙΑΓΝΩΣΗ"."ΠΕΡΙΓΡΑΦΗ_ΔΙΑ" ='ΑΡΘΡΙΤΙΔΑ')
GROUP BY "ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ";
 
/*
8. Πόσους διαφορετικούς ασθενείς είχε το κάθε νοσοκομείο από 1/1/2008 έως 31/8/2009;
*/ 
SELECT   DISTINCT "ΟΝΟΜΑ_ΝΟΣ", COUNT("ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ") as "ΠΛΗΘΟΣ_ΑΣΘΕΝΩΝ"
FROM    "ΝΟΣΟΚΟΜΕΙΟ", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ", "ΑΣΘΕΝΗΣ" 
WHERE    "ΑΣΘΕΝΗΣ"."ΚΩΔΙΚΟΣ_ΑΣΘ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΑΣΘ"
AND    "ΝΟΣΟΚΟΜΕΙΟ"."ΚΩΔΙΚΟΣ_ΝΟΣ"="ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΚΩΔΙΚΟΣ_ΝΟΣ"
AND    ("ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ" >= TO_DATE('01/01/2008', 'dd/mm/yyyy')) 
AND        ("ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ"."ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ" <= TO_DATE('31/08/2009', 'dd/mm/yyyy')) 
GROUP BY "ΟΝΟΜΑ_ΝΟΣ" ;
 
/* 
9. Να βρεθεί το όνομα του Νοσοκομείου στο οποίο έγινε η παλαιότερη χρονολογικά 
επίσκεψη ασθενούς. Μαζί με το όνομα του Νοσοκομείου, στα αποτελέσματα να εκτυπωθεί 
και η ημερομηνία στην οποία έγινε η παλαιότερη χρονολογικά επίσκεψη ασθενούς.
*/
SELECT DISTINCT "ΟΝΟΜΑ_ΝΟΣ", TO_CHAR("ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ", 'dd/mm/yyyy') "ΠΑΛΑΙΟΤΕΡΗ_ΗΜΕΡ"
FROM   "ΝΟΣΟΚΟΜΕΙΟ" "Ν", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" "ΕΠΑ"
WHERE "Ν"."ΚΩΔΙΚΟΣ_ΝΟΣ" = "ΕΠΑ"."ΚΩΔΙΚΟΣ_ΝΟΣ" AND "ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ" = 
                                                         (SELECT MIN("ΗΜΕΡΟΜΗΝΙΑ_ΕΠΙ")
                                                            FROM "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ");
 
/* 
10. Να δοθούν τα ονοματεπώνυμα και οι διευθύνσεις των κατοίκων της πόλης "ΠΑΤΡΑ" 
που χρειάστηκε να επισκεφθούν Νοσοκομεία τα οποία δεν βρίσκονται μέσα στην πόλη 
όπου κατοικούν. Μαζί με τα στοιχεία κάθε ασθενούς να εκτυπωθεί και η πόλη του 
Νοσοκομείου που χρειάστηκε να επισκεφθεί.
*/
SELECT DISTINCT "ΟΝΟΜΑ_ΑΣΘ", "ΕΠΩΝΥΜΟ_ΑΣΘ", "ΔΙΕΥΘΥΝΣΗ_ΑΣΘ", "ΠΟΛΗ_ΝΟΣ"
FROM  "ΑΣΘΕΝΗΣ" "Α", "ΕΠΙΣΚΕΨΗ_ΑΣΘΕΝΗ" "ΕΑ", "ΝΟΣΟΚΟΜΕΙΟ" "Ν"
WHERE "Α"."ΚΩΔΙΚΟΣ_ΑΣΘ" = "ΕΑ"."ΚΩΔΙΚΟΣ_ΑΣΘ" 
 AND  "ΕΑ"."ΚΩΔΙΚΟΣ_ΝΟΣ" = "Ν"."ΚΩΔΙΚΟΣ_ΝΟΣ" 
 AND  "ΔΙΕΥΘΥΝΣΗ_ΑΣΘ" LIKE '%ΠΑΤΡΑ%' AND "ΠΟΛΗ_ΝΟΣ" <> 'ΠΑΤΡΑ';