You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

41 lines
3.1 KiB

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;