Message posté par : neskuik01
----------------------------------------
Après avoir compris qu'il s'agissait de sql dynamique j'en suis arrivé à cette
requête fonctionne mais partiellement.
j'ai bien re-vérifié que les end_point et start_point soient bien joint donc le
problème ne vient pas d'un souci de connexité.
Capture d'écran :
https://ibb.co/ZVsKG4p
-----------------
Code :
DROP FUNCTION IF EXISTS pg_temp.upd(tu text) CASCADE;
CREATE FUNCTION pg_temp.upd(tu text) RETURNS VOID
AS $$ BEGIN
--EXECUTE 'UPDATE turbi.input tu SET v19 = GREATEST(v19, (SELECT max(v19) FROM
turbi.input t2 WHERE t2.id_nd_fin = tu.id_nd_ini))
EXECUTE 'UPDATE turbi.input tu SET v19 = GREATEST(v19, (SELECT SUM(v19) FROM
turbi.input t2 WHERE t2.id_nd_fin = tu.id_nd_ini))
WHERE tu.id_bdcarth IN (' || tu || ' )'; END; $$
LANGUAGE plpgsql;
WITH
RECURSIVE rec(turbi_19, id_bdcarth, id_nd_ini, id_nd_fin, date_obs)
AS(
SELECT 0, tu.id_bdcarth, tu.id_nd_ini, tu.id_nd_fin, tu.date_obs, 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.turbi_19, tu.id_bdcarth, tu.id_nd_ini, tu.id_nd_fin, tu.date_obs,
FROM rec
JOIN turbi.input tu
ON rec.id_nd_fin = tu.id_nd_ini
)
SELECT turbi_19, string_agg(f.id_bdcarth::text, ', ' ORDER BY id_bdcarth),
pg_temp.upd(string_agg(f.id_bdcarth::text, ','))
FROM (SELECT sum(turbi_19) turbi_19, id_bdcarth FROM rec GROUP BY id_bdcarth) f
WHERE turbi_19 > 0
GROUP BY turbi_19
ORDER BY turbi_19;
DROP TABLE IF EXISTS turbi.inputVAL2;
CREATE table turbi.inputVAL2 as
SELECT distinct id_bdcarth,v19 valeur,id_nd_ini,id_nd_fin, turbi_19,geom FROM turbi.input
ORDER BY id_bdcarth;
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=346200#p346200
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