diff --git a/sql/v01/32.create.penalty-view.sql b/sql/v01/32.create.penalty-view.sql new file mode 100644 index 0000000..0246416 --- /dev/null +++ b/sql/v01/32.create.penalty-view.sql @@ -0,0 +1,32 @@ + +CREATE VIEW v_penalty_area_commitments AS +SELECT year, mgnr, + SUM(COALESCE(IIF(u.weight = 0, -t.penalty_none, 0), 0) + + COALESCE(IIF(u.diff < 0, -t.penalty_amount, 0), 0) + + COALESCE(u.diff * t.penalty_per_kg, 0) + ) AS total_penalty +FROM v_under_delivery u + JOIN area_commitment_type t ON t.vtrgid = u.bucket +GROUP BY year, mgnr +HAVING total_penalty < 0 +ORDER BY year, mgnr; + +CREATE VIEW v_penalty_business_shares AS +SELECT s.year, u.mgnr, + (COALESCE(IIF(u.weight = 0, -s.penalty_none, 0), 0) + + COALESCE(IIF(u.diff < 0, -s.penalty_amount, 0), 0) + + COALESCE(u.diff * s.penalty_per_kg, 0) + ) AS total_penalty +FROM v_total_under_delivery u + JOIN season s ON s.year = u.year +WHERE u.diff < 0 AND total_penalty < 0 +ORDER BY s.year, u.mgnr; + +CREATE VIEW v_auto_business_shares AS +SELECT s.year, h.mgnr, + SUM(h.business_shares) AS business_shares, + SUM(h.business_shares) * s.bs_value AS total_amount +FROM member_history h, season s +WHERE h.type = 'auto' AND h.date >= s.year || '-01-01' AND h.date <= s.year || '-12-31' +GROUP BY s.year, h.mgnr +ORDER BY s.year, h.mgnr; diff --git a/sql/v01/99.schema_version.sql b/sql/v01/99.schema_version.sql index 8ce781d..09a4851 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 = 1300; +PRAGMA schema_version = 1400;