return: text lang: plpgsql src: | DECLARE BEGIN -- Identification des journées selon lignes facturées DROP TABLE IF EXISTS w_duree_occupation; CREATE TEMP TABLE w_duree_occupation AS SELECT no_sejour, t_lieux_c.etage_id AS lieu_etage_id, t_lieux_c.etage_code AS lieu_etage_code, t_lieux_c.etage_texte AS lieu_etage_texte, t_lieux_c.etage_section_id AS lieu_etage_section_id, t_lieux_c.etage_section_code AS lieu_etage_section_code, t_lieux_c.etage_section_texte AS lieu_etage_section_texte, t_lieux_c.lit_id AS lieu_lit_id, t_lieux_c.lit_code AS lieu_lit_code, t_lieux_c.lit_texte AS lieu_lit_texte, t_lieux_c.lit_section_id AS lieu_lit_section_id, t_lieux_c.lit_section_code AS lieu_lit_section_code, t_lieux_c.lit_section_texte AS lieu_lit_section_texte, t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, sum(nb_jours_f) AS duree_occ_eta FROM activite.p_mouvements_sejour JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25; CREATE INDEX w_duree_occupation_i1 ON w_duree_occupation USING btree (no_sejour); DROP TABLE IF EXISTS activite.p_duree_occupation; CREATE TABLE activite.p_duree_occupation AS SELECT no_sejour::text, lieu_etage_id::bigint as v_lieu_etage_id, lieu_etage_code::text as v_lieu_etage_code, lieu_etage_texte::text as v_lieu_etage_texte, lieu_etage_section_id::bigint[] as v_lieu_etage_section_id, lieu_etage_section_code::text[] as v_lieu_etage_section_code, lieu_etage_section_texte::text[] as v_lieu_etage_section_texte, lieu_lit_id::bigint as v_lieu_lit_id, lieu_lit_code::text as v_lieu_lit_code, lieu_lit_texte::text as v_lieu_lit_texte, lieu_lit_section_id::bigint[] as v_lieu_lit_section_id, lieu_lit_section_code::text[] as v_lieu_lit_section_code, lieu_lit_section_texte::text[] as v_lieu_lit_section_texte, lieu_unite_medicale_id::bigint as v_lieu_unite_medicale_id, lieu_unite_medicale_code::text as v_lieu_unite_medicale_code, lieu_unite_medicale_texte::text as v_lieu_unite_medicale_texte, lieu_unite_medicale_section_id::bigint[] as v_lieu_unite_medicale_section_id, lieu_unite_medicale_section_code::text[] as v_lieu_unite_medicale_section_code, lieu_unite_medicale_section_texte::text[] as v_lieu_unite_medicale_section_texte, lieu_unite_fonctionnelle_id::bigint as v_lieu_unite_fonctionnelle_id, lieu_unite_fonctionnelle_code::text as v_lieu_unite_fonctionnelle_code, lieu_unite_fonctionnelle_texte::text as v_lieu_unite_fonctionnelle_texte, lieu_unite_fonctionnelle_section_id::bigint[] as v_lieu_unite_fonctionnelle_section_id, lieu_unite_fonctionnelle_section_code::text[] as v_lieu_unite_fonctionnelle_section_code, lieu_unite_fonctionnelle_section_texte::text[] as v_lieu_unite_fonctionnelle_section_texte, duree_occ_eta::bigint FROM w_duree_occupation; -- Détection nouvelles journées pour les services concernés RAISE NOTICE '%' , 'Fin calcule durée occupation'; ANALYZE activite.p_duree_occupation; RETURN 'OK' ; END;