/* Oracle, Loesung 2, Tabellen erstellen, die benoetigt werden */
/* Loeschbefehle aktivieren, falls die Tabellen schon existieren */
/* DROP TABLE zeitintervall_zahlen_0_bis_9; */
/* DROP TABLE zeitintervall_tag; */
/* DROP TABLE zeitintervall_sortiert; */
/* DROP TABLE zeitintervall_gesamt_u_luecken; */
/* DROP TABLE zeitintervall_ergebnis; */
/* Tabelle, wo die Zahlen von 0 bis 9 eingefuegt werden */
CREATE TABLE zeitintervall_zahlen_0_bis_9 (
zahl NUMBER(10,0) NOT NULL,
PRIMARY KEY (zahl)
);
/* Tabelle fuer Tage */
CREATE TABLE zeitintervall_tag (
tag DATE NOT NULL,
PRIMARY KEY (tag)
);
/* Tabelle fuer sortierte Zeitintervalle */
CREATE TABLE zeitintervall_sortiert (
row_id NUMBER(10,0) NOT NULL,
row_id_plus_1 NUMBER(10,0) NOT NULL,
fallnr NUMBER(10,0) NOT NULL,
beginn DATE NOT NULL,
ende DATE NOT NULL,
next_beginn DATE,
PRIMARY KEY (fallnr, beginn, ende),
UNIQUE (row_id)
);
/* Tabelle fuer Gesamt-Intervalle und Luecken zwischen diesen */
CREATE TABLE zeitintervall_gesamt_u_luecken (
fallnr NUMBER(10,0) NOT NULL,
beginn DATE NOT NULL,
beginntag DATE,
ende DATE NOT NULL,
endetag DATE,
luecke VARCHAR(4) NOT NULL,
faktor NUMBER(1,0) NOT NULL,
PRIMARY KEY (fallnr, beginn, ende)
);
/* Tabelle fuer Ergebnis */
CREATE TABLE zeitintervall_ergebnis (
fallnr NUMBER(10,0) NOT NULL,
tag DATE NOT NULL,
minuten NUMBER(10,0),
PRIMARY KEY (fallnr, tag)
);