/* SQLite: Loesung 2, Tabellen erstellen, die benoetigt werden */
/* Tabelle, wo die Zahlen von 0 bis 9 eingefuegt werden */
DROP TABLE IF EXISTS zeitintervall_zahlen_0_bis_9;
CREATE TABLE zeitintervall_zahlen_0_bis_9 (
zahl INTEGER NOT NULL,
PRIMARY KEY (zahl)
);
/* Tabelle fuer Tage */
DROP TABLE IF EXISTS zeitintervall_tag;
CREATE TABLE zeitintervall_tag (
tag DATE NOT NULL,
PRIMARY KEY (tag)
);
/* Tabelle, um fuer das Ergebnis irrelevante Intervalle zu identifizieren */
DROP TABLE IF EXISTS zeitintervall_irrelevant;
CREATE TABLE zeitintervall_irrelevant (
row_id INTEGER NOT NULL,
PRIMARY KEY (row_id)
);
/* Tabelle fuer sortierte Zeitintervalle */
DROP TABLE IF EXISTS zeitintervall_sortiert;
CREATE TABLE zeitintervall_sortiert (
row_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
fallnr INTEGER NOT NULL,
beginn DATETIME NOT NULL,
ende DATETIME NOT NULL,
next_beginn DATETIME
);
/* Temp-Table, da SQLite keine UPDATE-JOIN-Befehle erlaubt */
DROP TABLE IF EXISTS zeitintervall_sortiert_temp;
CREATE TABLE zeitintervall_sortiert_temp (
row_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
fallnr INTEGER NOT NULL,
beginn DATETIME NOT NULL,
ende DATETIME NOT NULL
);
/* Tabelle fuer Ergebnis */
DROP TABLE IF EXISTS zeitintervall_ergebnis;
CREATE TABLE zeitintervall_ergebnis (
fallnr INTEGER NOT NULL,
tag DATE NOT NULL,
minuten INTEGER,
PRIMARY KEY (fallnr, tag)
);