From 26f1bda85ed59f815d0a1ab7ba629637ab27c262 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 17 Jan 2024 14:57:13 +0100 Subject: [PATCH] database: Update schema_version to 13 --- sql/v01/11.create.client.sql | 14 ++++++++++++++ sql/v01/12.create.season.sql | 1 + sql/v01/30.create.view.sql | 14 ++++++++++++++ sql/v01/99.schema_version.sql | 2 +- 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/sql/v01/11.create.client.sql b/sql/v01/11.create.client.sql index 5e52570..913e43c 100644 --- a/sql/v01/11.create.client.sql +++ b/sql/v01/11.create.client.sql @@ -206,3 +206,17 @@ CREATE TABLE area_commitment ( ON UPDATE CASCADE ON DELETE RESTRICT ) STRICT; + +CREATE TABLE member_history ( + mgnr INTEGER NOT NULL, + date TEXT NOT NULL CHECK (date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT CURRENT_DATE, + + business_shares INTEGER NOT NULL, + type TEXT NOT NULL CHECK (type REGEXP '^[a-z_]+$'), + comment TEXT DEFAULT NULL, + + CONSTRAINT pk_member_history PRIMARY KEY (mgnr, date), + CONSTRAINT fk_member_history_member FOREIGN KEY (mgnr) REFERENCES member (mgnr) + ON UPDATE CASCADE + ON DELETE CASCADE +) STRICT; diff --git a/sql/v01/12.create.season.sql b/sql/v01/12.create.season.sql index 70b9198..107adad 100644 --- a/sql/v01/12.create.season.sql +++ b/sql/v01/12.create.season.sql @@ -13,6 +13,7 @@ CREATE TABLE season ( penalty_per_kg INTEGER, penalty_amount INTEGER, penalty_none INTEGER, + bs_value INTEGER, start_date TEXT CHECK (start_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'), end_date TEXT CHECK (end_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'), diff --git a/sql/v01/30.create.view.sql b/sql/v01/30.create.view.sql index acf4065..a3f1965 100644 --- a/sql/v01/30.create.view.sql +++ b/sql/v01/30.create.view.sql @@ -104,3 +104,17 @@ FROM v_delivery d LEFT JOIN AT_ort o ON o.okz = ap.okz JOIN wine_variety v ON v.sortid = d.sortid ORDER BY d.date, d.time; + +CREATE VIEW v_total_under_delivery AS +SELECT s.year, m.mgnr, m.business_shares, + m.business_shares * s.min_kg_per_bs AS min_kg, + m.business_shares * s.max_kg_per_bs AS max_kg, + COALESCE(d.sum, 0) AS weight, + IIF(COALESCE(d.sum, 0) < m.business_shares * s.min_kg_per_bs, + COALESCE(d.sum, 0) - m.business_shares * s.min_kg_per_bs, + IIF(COALESCE(d.sum, 0) > m.business_shares * s.max_kg_per_bs, + COALESCE(d.sum, 0) - m.business_shares * s.max_kg_per_bs, + 0)) AS diff +FROM member m, season s + LEFT JOIN v_stat_member d ON (d.year, d.mgnr) = (s.year, m.mgnr) +ORDER BY s.year, m.mgnr; diff --git a/sql/v01/99.schema_version.sql b/sql/v01/99.schema_version.sql index a086d35..8ce781d 100644 --- a/sql/v01/99.schema_version.sql +++ b/sql/v01/99.schema_version.sql @@ -1,3 +1,3 @@ -- This value MUST NOT be changed while other connections are open! -PRAGMA schema_version = 1200; +PRAGMA schema_version = 1300;