database: add VIEW v_under_delivery
This commit is contained in:
@ -3,6 +3,7 @@ CREATE VIEW v_area_commitment_bucket_strict AS
|
|||||||
SELECT s.year, c.mgnr,
|
SELECT s.year, c.mgnr,
|
||||||
t.sortid || COALESCE(a.attrid, '') AS bucket,
|
t.sortid || COALESCE(a.attrid, '') AS bucket,
|
||||||
t.sortid, a.attrid,
|
t.sortid, a.attrid,
|
||||||
|
SUM(area) AS area,
|
||||||
CAST(ROUND(SUM(area) * COALESCE(t.min_kg_per_ha, 0) / 10000.0, 0) AS INTEGER) AS min_kg,
|
CAST(ROUND(SUM(area) * COALESCE(t.min_kg_per_ha, 0) / 10000.0, 0) AS INTEGER) AS min_kg,
|
||||||
CAST(ROUND(SUM(area) * MIN(COALESCE(a.max_kg_per_ha, s.max_kg_per_ha), s.max_kg_per_ha) / 10000.0, 0) AS INTEGER) AS max_kg,
|
CAST(ROUND(SUM(area) * MIN(COALESCE(a.max_kg_per_ha, s.max_kg_per_ha), s.max_kg_per_ha) / 10000.0, 0) AS INTEGER) AS max_kg,
|
||||||
CAST(ROUND(SUM(area) * s.max_kg_per_ha / 10000.0, 0) AS INTEGER) AS upper_max_kg
|
CAST(ROUND(SUM(area) * s.max_kg_per_ha / 10000.0, 0) AS INTEGER) AS upper_max_kg
|
||||||
@ -77,3 +78,26 @@ FROM v_payment_bucket_strict b
|
|||||||
WHERE gebunden AND (a.strict IS NULL OR a.strict = FALSE)
|
WHERE gebunden AND (a.strict IS NULL OR a.strict = FALSE)
|
||||||
GROUP BY b.year, b.mgnr, b.sortid
|
GROUP BY b.year, b.mgnr, b.sortid
|
||||||
ORDER BY year, mgnr, bucket;
|
ORDER BY year, mgnr, bucket;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE VIEW v_under_delivery_bucket_strict AS
|
||||||
|
SELECT c.year, c.mgnr, c.bucket, c.min_kg, COALESCE(p.weight, 0) AS weight
|
||||||
|
FROM v_area_commitment_bucket_strict c
|
||||||
|
LEFT JOIN v_payment_bucket_strict p ON (p.year, p.mgnr, p.bucket) = (c.year, c.mgnr, c.bucket)
|
||||||
|
ORDER BY c.year, c.mgnr, c.bucket;
|
||||||
|
|
||||||
|
CREATE VIEW v_under_delivery_bucket AS
|
||||||
|
SELECT u.year, u.mgnr, u.bucket, u.min_kg,
|
||||||
|
u.weight + SUM(MAX(COALESCE(p.weight - s.min_kg, 0), 0)) AS weight
|
||||||
|
FROM v_under_delivery_bucket_strict u
|
||||||
|
LEFT JOIN v_payment_bucket_strict p ON (p.year, p.mgnr, p.sortid) = (u.year, u.mgnr, u.bucket) AND p.attrid IS NOT NULL
|
||||||
|
LEFT JOIN wine_attribute a ON a.attrid = p.attrid
|
||||||
|
LEFT JOIN v_area_commitment_bucket_strict s ON (s.year, s.mgnr, s.bucket) = (p.year, p.mgnr, p.bucket)
|
||||||
|
WHERE (p.gebunden IS NULL OR p.gebunden) AND (a.strict IS NULL OR a.strict = FALSE)
|
||||||
|
GROUP BY u.year, u.mgnr, u.bucket
|
||||||
|
ORDER BY u.year, u.mgnr, u.bucket;
|
||||||
|
|
||||||
|
CREATE VIEW v_under_delivery AS
|
||||||
|
SELECT year, mgnr, bucket, min_kg, weight, weight - min_kg AS diff
|
||||||
|
FROM v_under_delivery_bucket
|
||||||
|
WHERE diff < 0;
|
||||||
|
Reference in New Issue
Block a user