Message posté par : neskuik01
----------------------------------------
Je tente toujours sans succès d'additionner les valeurs sur mon réseau hydrographique.
Ma requête ressemble desormais à ceci :
-----------------
Code :
Create table turbi.input_bckup as
select *from turbi.input;
DROP FUNCTION IF EXISTS turbi.ft_flowAdd (tu text) CASCADE;
CREATE FUNCTION turbi.ft_flowAdd (tu text) RETURNS VOID
--AS $$ BEGIN EXECUTE 'UPDATE turbi."input" tu SET v19 = GREATEST(v19,
(SELECT max(v19) FROM tu t2 WHERE t2.id_nd_fin = tu.id_nd_ini)) WHERE tu.id_bdcarth IN
(' || tu || ' )'; END; $$
--LANGUAGE plpgsql;
AS $$ BEGIN EXECUTE 'UPDATE turbi."input" tu SET turbi_19 =
GREATEST(turbi_19, (SELECT max(turbi_19) FROM tu t2 WHERE t2.id_nd_fin = tu.id_nd_ini))
WHERE tu.id_bdcarth IN (' || tu || ' )'; END; $$
LANGUAGE plpgsql;
WITH RECURSIVE additionflow
(pk,turbi_19,id_bdcarth,id_nd_ini,id_nd_fin,date_obs,detruit_le)
AS(
SELECT
tu.pk,
0,
tu.id_bdcarth,
tu.id_nd_ini,
tu.id_nd_fin,
tu.date_obs,
tu.detruit_le,
tu.statut
from turbi."input" tu
LEFT JOIN turbi."input" t2
ON tu.id_nd_ini = t2.id_nd_fin
WHERE t2.id_nd_fin IS NULL
UNION
SELECT
tu.pk,
tu.turbi_19,
tu.id_bdcarth,
tu.id_nd_ini,
tu.id_nd_fin,
tu.date_obs,
tu.detruit_le,
tu.statut
FROM additionflow
JOIN turbi."input" tu
ON additionflow.id_nd_fin =tu.id_nd_ini
)
SELECT turbi.ft_flowAdd(string_agg(f.id_bdcarth::text, ','))
FROM (SELECT max(turbi_19) turbi_19, id_bdcarth FROM additionflow GROUP BY id_bdcarth)
f
WHERE turbi_19 > 0
GROUP BY turbi_19
ORDER BY turbi_19;
-----------------
Je me retrouve avec une erreur "la relation tu n'existe pas" , La question
que je me pose donc c'est dois-je créer une table spécifique au préalable ? le sql
fiddle me perturbe un peu .
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=346128#p346128
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net