CREATE FUNCTION cen_liste_structure_finance_etude(integer) RETURNS text AS $_$ DECLARE lot_donnee_id_lot alias FOR $1; myrec RECORD; var_id_structure integer; var_nom_structure character varying(60); var_liste_structure character varying(255) DEFAULT 'Non mentionné pour l''instant'; BEGIN FOR myrec IN SELECT lot_donnee.id_etude, structure.nom_structure, montant FROM lot_donnee JOIN etude ON lot_donnee.id_etude=etude.id_etude JOIN structure_finance_etude ON etude.id_etude=structure_finance_etude.id_etude JOIN structure ON structure_finance_etude.id_structure=structure.id_structure WHERE id_lot=lot_donnee_id_lot AND nom_structure<>'Pas de structure' ORDER BY montant DESC, nom_structure LOOP var_nom_structure:=myrec.nom_structure; -- a ventiler dans les métadonnées var_liste_structure:=var_liste_structure||' et '||var_nom_structure; --RAISE NOTICE 'structure_courante : %', var_nom_structure ; --RAISE NOTICE 'liste : %', var_liste_structure ; END LOOP; RETURN ltrim(var_liste_structure,' et '); END; $_$ LANGUAGE plpgsql;