mirror of
https://github.com/AdrienHallet/HaitiWater.git
synced 2026-10-26 17:35:18 +00:00
52 lines
2.6 KiB
SQL
52 lines
2.6 KiB
SQL
CREATE OR REPLACE VIEW public.water_network_virtualelementtotal AS
|
|
SELECT e.id AS relevant_model,
|
|
( SELECT COALESCE(sum(c.household_size + 1), 0::bigint) AS "coalesce"
|
|
FROM consumers_consumer c
|
|
WHERE c.water_outlet_id = e.id) AS total_consumers,
|
|
( SELECT COALESCE(sum(r.quantity_distributed), 0::double precision) AS "coalesce"
|
|
FROM report_report r
|
|
WHERE r.water_outlet_id = e.id AND r.was_active) AS total_distributed
|
|
FROM water_network_element e
|
|
GROUP BY e.id;
|
|
|
|
CREATE OR REPLACE VIEW public.water_network_virtualzonetotal AS
|
|
SELECT
|
|
z.id AS "relevant_model",
|
|
z.name AS "zone_name",
|
|
( SELECT COALESCE(count(c.id), 0)
|
|
FROM consumers_consumer c, water_network_element e, water_network_zone sub
|
|
WHERE c.water_outlet_id = e.id AND e.zone_id = sub.id AND sub.name = ANY(z.subzones)) AS "indiv_consumers",
|
|
( SELECT COALESCE(sum(c.household_size + 1), 0)
|
|
FROM consumers_consumer c, water_network_element e, water_network_zone sub
|
|
WHERE c.water_outlet_id = e.id AND e.zone_id = sub.id AND sub.name = ANY(z.subzones)) AS "total_consumers",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'FOUNTAIN') AS "fountains",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'KIOSK') AS "kiosks",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'INDIVIDUAL') AS "indiv_outputs",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'SOURCE') AS "water_points",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'PIPE') AS "pipes",
|
|
( SELECT COALESCE(count(e.id), 0)
|
|
FROM water_network_element e, water_network_zone sub
|
|
WHERE e.zone_id = sub.id AND sub.name = ANY(z.subzones) AND e.type = 'TANK') AS "tanks"
|
|
|
|
FROM water_network_zone z;
|
|
|
|
CREATE OR REPLACE VIEW public.consumer_virtualtotalbalance AS
|
|
SELECT
|
|
c.id AS "relevant_model",
|
|
( SELECT COALESCE(SUM(p.amount), 0)
|
|
FROM financial_payment p
|
|
WHERE p.consumer_id = c.id) AS "payed",
|
|
( SELECT COALESCE(SUM(i.amount), 0)
|
|
FROM financial_invoice i
|
|
WHERE i.consumer_id = c.id) AS "due"
|
|
FROM consumers_consumer c; |