Dtos: Rewrite SQL queries to be more efficient
All checks were successful
Test / Run tests (push) Successful in 2m28s

This commit is contained in:
2024-08-24 16:37:41 +02:00
parent b5c1bfb08f
commit 9930e6173c
2 changed files with 7 additions and 7 deletions

View File

@ -40,12 +40,12 @@ namespace Elwig.Models.Dtos {
COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '') AS name_2,
p.plz, o.name AS ort, m.address,
c.bucket, c.area, u.min_kg, u.weight
FROM member m
FROM v_area_commitment_bucket_strict c
LEFT JOIN member m ON m.mgnr = c.mgnr
LEFT JOIN AT_plz_dest p ON p.id = m.postal_dest
LEFT JOIN AT_ort o ON o.okz = p.okz
LEFT JOIN v_area_commitment_bucket_strict c ON c.mgnr = m.mgnr AND c.year = {year}
JOIN v_under_delivery u ON (u.mgnr, u.bucket, u.year) = (m.mgnr, c.bucket, c.year)
WHERE m.active = 1
WHERE c.year = {year} AND m.active = 1
ORDER BY m.mgnr, c.bucket
""").ToListAsync();
}

View File

@ -33,12 +33,12 @@ namespace Elwig.Models.Dtos {
m.business_shares * s.min_kg_per_bs AS min_kg,
m.business_shares * s.max_kg_per_bs AS max_kg,
COALESCE(SUM(d.weight), 0) AS sum
FROM member m
FROM v_delivery d
LEFT JOIN member m ON m.mgnr = d.mgnr
LEFT JOIN AT_plz_dest p ON p.id = m.postal_dest
LEFT JOIN AT_ort o ON o.okz = p.okz
LEFT JOIN season s ON s.year = {year}
LEFT JOIN v_delivery d ON d.mgnr = m.mgnr AND d.year = s.year
WHERE m.active = TRUE OR d.weight > 0
LEFT JOIN season s ON s.year = d.year
WHERE s.year = {year} AND (m.active = TRUE OR d.weight > 0)
GROUP BY d.year, m.mgnr
ORDER BY 100.0 * sum / max_kg, m.mgnr;
""").ToListAsync();