database: use bins instead of buckets
This commit is contained in:
@ -444,6 +444,16 @@ CREATE TABLE season (
|
||||
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])$'),
|
||||
|
||||
bin_1_name TEXT DEFAULT NULL,
|
||||
bin_2_name TEXT DEFAULT NULL,
|
||||
bin_3_name TEXT DEFAULT NULL,
|
||||
bin_4_name TEXT DEFAULT NULL,
|
||||
bin_5_name TEXT DEFAULT NULL,
|
||||
bin_6_name TEXT DEFAULT NULL,
|
||||
bin_7_name TEXT DEFAULT NULL,
|
||||
bin_8_name TEXT DEFAULT NULL,
|
||||
bin_9_name TEXT DEFAULT NULL,
|
||||
|
||||
CONSTRAINT pk_season PRIMARY KEY (year),
|
||||
CONSTRAINT fk_season_currency FOREIGN KEY (currency) REFERENCES currency (code)
|
||||
ON UPDATE CASCADE
|
||||
@ -623,6 +633,27 @@ CREATE TABLE delivery_part_modifier (
|
||||
ON DELETE RESTRICT
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE delivery_part_bin (
|
||||
year INTEGER NOT NULL,
|
||||
did INTEGER NOT NULL,
|
||||
dpnr INTEGER NOT NULL,
|
||||
|
||||
bin_1 INTEGER DEFAULT NULL,
|
||||
bin_2 INTEGER DEFAULT NULL,
|
||||
bin_3 INTEGER DEFAULT NULL,
|
||||
bin_4 INTEGER DEFAULT NULL,
|
||||
bin_5 INTEGER DEFAULT NULL,
|
||||
bin_6 INTEGER DEFAULT NULL,
|
||||
bin_7 INTEGER DEFAULT NULL,
|
||||
bin_8 INTEGER DEFAULT NULL,
|
||||
bin_9 INTEGER DEFAULT NULL,
|
||||
|
||||
CONSTRAINT pk_delivery_part_bin PRIMARY KEY (year, did, dpnr),
|
||||
CONSTRAINT fk_delivery_part_bin_delivery_part FOREIGN KEY (year, did, dpnr) REFERENCES delivery_part (year, did, dpnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE payment_variant (
|
||||
year INTEGER NOT NULL,
|
||||
avnr INTEGER NOT NULL,
|
||||
@ -633,16 +664,6 @@ CREATE TABLE payment_variant (
|
||||
test_variant INTEGER NOT NULL CHECK (test_variant IN (TRUE, FALSE)),
|
||||
calc_time INTEGER,
|
||||
|
||||
bucket_1_name TEXT DEFAULT NULL,
|
||||
bucket_2_name TEXT DEFAULT NULL,
|
||||
bucket_3_name TEXT DEFAULT NULL,
|
||||
bucket_4_name TEXT DEFAULT NULL,
|
||||
bucket_5_name TEXT DEFAULT NULL,
|
||||
bucket_6_name TEXT DEFAULT NULL,
|
||||
bucket_7_name TEXT DEFAULT NULL,
|
||||
bucket_8_name TEXT DEFAULT NULL,
|
||||
bucket_9_name TEXT DEFAULT NULL,
|
||||
|
||||
comment TEXT DEFAULT NULL,
|
||||
data TEXT NOT NULL,
|
||||
ctime INTEGER NOT NULL DEFAULT (UNIXEPOCH()),
|
||||
@ -661,16 +682,6 @@ CREATE TABLE payment_delivery_part (
|
||||
mod_abs INTEGER NOT NULL DEFAULT 0,
|
||||
mod_rel REAL NOT NULL DEFAULT 0,
|
||||
|
||||
bucket_1 INTEGER DEFAULT NULL,
|
||||
bucket_2 INTEGER DEFAULT NULL,
|
||||
bucket_3 INTEGER DEFAULT NULL,
|
||||
bucket_4 INTEGER DEFAULT NULL,
|
||||
bucket_5 INTEGER DEFAULT NULL,
|
||||
bucket_6 INTEGER DEFAULT NULL,
|
||||
bucket_7 INTEGER DEFAULT NULL,
|
||||
bucket_8 INTEGER DEFAULT NULL,
|
||||
bucket_9 INTEGER DEFAULT NULL,
|
||||
|
||||
price_1 INTEGER DEFAULT NULL,
|
||||
price_2 INTEGER DEFAULT NULL,
|
||||
price_3 INTEGER DEFAULT NULL,
|
||||
|
@ -23,7 +23,7 @@ SELECT p.year, p.did, p.dpnr,
|
||||
d.date, d.time, d.zwstid, d.lnr, d.lsnr,
|
||||
m.mgnr, m.family_name, m.given_name,
|
||||
p.sortid, p.weight, p.kmw, ROUND(p.kmw * (4.54 + 0.022 * p.kmw), 0) AS oe, p.qualid, p.hkid, p.kgnr, p.rdnr,
|
||||
p.qualid NOT IN (SELECT l.qualid FROM wine_quality_level l WHERE p.kmw >= l.min_kmw OR l.min_kmw IS NULL) AS abgewertet,
|
||||
p.qualid IN (SELECT l.qualid FROM wine_quality_level l WHERE NOT l.predicate AND (p.kmw >= l.min_kmw OR l.min_kmw IS NULL) ORDER BY l.min_kmw DESC LIMIT 1,100) AS abgewertet,
|
||||
p.qualid NOT IN ('WEI', 'RSW', 'LDW') AS min_quw,
|
||||
GROUP_CONCAT(DISTINCT a.attrid) as attributes, GROUP_CONCAT(DISTINCT o.modid) as modifiers,
|
||||
d.comment, p.comment as part_comment
|
||||
@ -35,13 +35,13 @@ FROM delivery_part p
|
||||
GROUP BY p.year, p.did, p.dpnr
|
||||
ORDER BY p.year, p.did, p.dpnr;
|
||||
|
||||
CREATE VIEW v_bucket AS
|
||||
CREATE VIEW v_bin AS
|
||||
SELECT year, mgnr,
|
||||
sortid || IIF(min_quw, REPLACE(COALESCE(attributes, ''), ',', ''), '_') AS bucket,
|
||||
sortid || IIF(min_quw, REPLACE(COALESCE(attributes, ''), ',', ''), '_') AS bin,
|
||||
SUM(weight) AS weight
|
||||
FROM v_delivery
|
||||
GROUP BY year, mgnr, bucket
|
||||
ORDER BY year, mgnr, LENGTH(bucket) DESC, bucket;
|
||||
GROUP BY year, mgnr, bin
|
||||
ORDER BY year, mgnr, LENGTH(bin) DESC, bin;
|
||||
|
||||
CREATE VIEW v_stat_season AS
|
||||
SELECT year,
|
||||
|
@ -1,3 +1,3 @@
|
||||
|
||||
-- This value MUST NOT be changed while other connections are open!
|
||||
PRAGMA schema_version = 200;
|
||||
PRAGMA schema_version = 300;
|
||||
|
Reference in New Issue
Block a user