src: | WITH montant_masse_salariale AS ( SELECT date_part('YEAR'::text, p_croisement_paie_planning.date)::numeric AS annee, sum(p_croisement_paie_planning.mont_mass_sala_inte_pror_temp_vali) AS masse_salariale_bloc FROM rh.p_croisement_paie_planning JOIN rh.t_classes ON t_classes.code = 'CTI_CONTRIBUTION_BLOC_OPERATOIRE'::text JOIN rh.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid JOIN rh.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid JOIN rh.p_planning_mouvement ON p_planning_mouvement.oid = p_croisement_paie_planning.planning_id AND p_planning_mouvement.service_id = t_classes_sections_elements.to_id GROUP BY (date_part('YEAR'::text, p_croisement_paie_planning.date)::numeric) ), comptes AS ( SELECT comptes_1.annee, comptes_1.cout_consommable, comptes_1.cout_energie, comptes_1.cout_structure FROM crosstab('SELECT date_part(''YEAR''::text, p_historique_ecritures.date_ecriture)::numeric AS annee, t_classes_sections.texte, sum(p_historique_ecritures.montant_debit) AS montant_debit FROM compta.p_historique_ecritures JOIN compta.t_journaux ON p_historique_ecritures.journal_id = t_journaux.oid JOIN compta.t_comptes_c ON p_historique_ecritures.compte_id = t_comptes_c.oid JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid JOIN compta.t_comptes_c t_comptes_c_contrepartie ON p_historique_ecritures.compte_contrepartie_id = t_comptes_c_contrepartie.oid JOIN compta.t_sites ON p_historique_ecritures.site_id = t_sites.oid JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid JOIN compta.t_sections_analytiques ON p_historique_ecritures.section_analytique_id = t_sections_analytiques.oid JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures.compte_budget_id = t_comptes_c_budget.oid JOIN compta.t_classes ON t_classes.code = ''CTI_CONTRIBUTION_BLOC_OPERATOIRE''::text JOIN compta.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid JOIN compta.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid AND t_classes_sections_elements.to_id = p_historique_ecritures.compte_id WHERE p_historique_ecritures.journal_id = 2 GROUP BY 1,2 ORDER BY 1,2'::text) comptes_1(annee numeric, cout_consommable numeric, cout_energie numeric, cout_structure numeric) ) SELECT annees.annees AS annee, montant_masse_salariale.masse_salariale_bloc, comptes.cout_consommable, comptes.cout_energie, comptes.cout_structure FROM generate_series(date_part('YEAR'::text, now() - '5 years'::interval)::numeric, date_part('YEAR'::text, now())::numeric) annees(annees) LEFT JOIN montant_masse_salariale ON montant_masse_salariale.annee = annees.annees LEFT JOIN comptes ON comptes.annee = annees.annees;