 select * from public.tmp_fusion;
 
 
-
-
-
-
-
-
-
--- 
--- /**
--- Calcul du pourcentage de la consommation.
--- La consommation totale est stockée dans ss_85_conso_tot
--- */
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss_85_conso;
--- alter table total.bilan_comm_v5_secten1 add column ss_85_conso double precision;
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss_85_conso_tot;
--- alter table total.bilan_comm_v5_secten1 add column ss_85_conso_tot text;
--- 
--- update total.bilan_comm_v5_secten1 as a set
--- 	ss_85_conso = b.pct,
--- 	ss_85_conso_tot = 'Conso etab =' || conso_etab || ' Conso tot = ' || b.conso_tot
--- from (
--- 	-- % de consommation de l'établissement, secten1, energie / conso tot secten1, energie, commune
--- 	select an, id_comm, code_etab, id_secten1, code_cat_energie, conso_etab, conso_tot, round((conso_etab / nullif(conso_tot, 0) * 100.)::numeric, 1) as pct
--- 	from (
--- 		-- Calcul de la consommation par établissement, secten1, code_cat énergie pour se séparer des usages et branches
--- 		select an, id_comm, code_etab, id_secten1, code_cat_energie, sum(val) as conso_etab
--- 		from total.bilan_comm_v5_secten1
--- 		where 
--- 			id_polluant = 131 
--- 			and bdrep is true
--- 		group by an, id_comm, code_etab, id_secten1, code_cat_energie 
--- 	) as a
--- 	left join (
--- 		-- Calcul de la conso tot par commune, an, groupe d'énergie et secten 1
--- 		select an, id_comm, id_secten1, code_cat_energie, sum(val) as conso_tot
--- 		from total.bilan_comm_v5_secten1
--- 		where id_polluant = 131
--- 		group by an, id_comm, id_secten1, code_cat_energie
--- 	) as b using (an, id_comm, id_secten1, code_cat_energie)
--- ) as b 
--- where
--- 	(a.an, a.id_comm, a.id_secten1, a.code_cat_energie, a.code_etab) = (b.an, b.id_comm, b.id_secten1, b.code_cat_energie, b.code_etab)
--- 	and a.bdrep is true -- Uniquement les consos bdrep
--- ;
--- 	
--- /**
--- Jointure du nombre d'établissements
--- */
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss_nb_etab;
--- alter table total.bilan_comm_v5_secten1 add column ss_nb_etab double precision;
--- 
--- update total.bilan_comm_v5_secten1 as a
--- set ss_nb_etab = b.nb_etab
--- from public.cigale_nb_etab as b
--- where 
--- 	(a.an, a.id_comm, a.id_secten1, a.code_cat_energie) = (b.an, b.id_comm, b.id_secten1, b.code_cat_energie)
--- 	and a.bdrep is true -- Uniquement les consos bdrep
--- ;
--- 
--- 
--- /**
--- Calcul final du secret stat à la commune
--- */
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss;
--- alter table total.bilan_comm_v5_secten1 add column ss boolean;
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss_commentaire;
--- alter table total.bilan_comm_v5_secten1 add column ss_commentaire text;
--- 
--- update total.bilan_comm_v5_secten1 as a set
--- 	ss = coalesce(b.ss, FALSE),
--- 	ss_commentaire = b.ss_commentaire
--- from (
--- 	select 
--- 		id_polluant, an, id_comm, id_secten1, code_cat_energie, code_etab, 
--- 		case 
--- 			when ss_85_conso >= 85 or ss_nb_etab <= 3 then true
--- 			else false
--- 		end as ss,
--- 		case 
--- 			when ss_85_conso >= 85  then '85%'
--- 			when ss_nb_etab < 3 then 'nb_etab'
--- 			else null
--- 		end as ss_commentaire
--- 	from total.bilan_comm_v5_secten1
--- 	where 
--- 		bdrep is true -- Uniquement pour les établissements bdrep
--- 		and code_cat_energie <> 8 -- Sans les consommations d'élec qui ne sont pas déclarées dans bdrep
--- 		and not ( -- Sans les consommations de GN déclarées dans l'open data (Comprends GN, GNL, GNV)
--- 			code_cat_energie = 1 
--- 			and bdrep is false
--- 			and (an, code_etab) not in (
--- 				-- Sélection des années et établissement pour lesquels on a affecté du GRT GAZ non déclaré dans BDREP
--- 				-- FIXME: Ne corresponds pas aux consos opendata mise à jour ou non par établissement dans bilan_comm! 
--- 				select distinct an, code_gerep
--- 				from src_ind.src_conso_source as a
--- 				left join src_ind.def_corresp_sources as b using (id_version_corresp, id_corresp)
--- 				where 
--- 					id_version_corresp = 5
--- 					and actif is true
--- 					and id_energie = 301 
--- 					and a.commentaire = 'GRT GAZ'							
--- 			)
--- 		) 
--- 	order by id_polluant, an, id_comm, code_etab, id_secten1, code_cat_energie
--- ) as b
--- where 
--- 	(a.id_polluant, a.an, a.id_comm, a.code_etab, a.id_secten1, a.code_cat_energie)
--- 	=
--- 	(b.id_polluant, b.an, b.id_comm, b.code_etab, b.id_secten1, b.code_cat_energie)
--- ;
--- 
--- update total.bilan_comm_v5_secten1 set ss = FALSE where ss is null;
--- 
--- -- Si on a une valeur en ss pour une commune, une énergie, une activité, alors toutes les
--- -- valeurs de la commune doivent-apparaître en SS
--- update total.bilan_comm_v5_secten1 
--- set ss = true, ss_commentaire = 'ss communal'
--- where 
--- 	(id_polluant, an, id_comm, id_secten1, code_cat_energie) in (
--- 		-- Commune, an, activite, energie qui ont au moins une donnée en ss
--- 		select distinct id_polluant, an, id_comm, id_secten1, code_cat_energie 
--- 		from total.bilan_comm_v5_secten1  
--- 		where ss is true
--- 	);
--- 
--- /**
--- Calcul d'un champ val_conso pour pouvoir relier plus facilement 
--- la consommation aux émissions lors de l'extraction
--- FIXME: EN l'état l'inventaire ne permet pas de faire de lien juste émissions / consommations! Cf. #30
--- 
--- alter table total.bilan_comm_v5_secten1 drop column if exists val_conso;
--- alter table total.bilan_comm_v5_secten1 add column val_conso double precision;
--- 
--- update total.bilan_comm_v5_secten1 as a
--- set val_conso = b.val_conso
--- from (
--- 	select an, id_comm, id_secten1, code_cat_energie, id_usage, id_branche, code_etab, sum(val) as val_conso
--- 	from total.bilan_comm_v5_secten1
--- 	where id_polluant = 131 
--- 	group by an, id_comm, id_secten1, code_cat_energie, id_usage, id_branche, code_etab
--- ) as b
--- where 
--- 	(a.an, a.id_comm, a.id_secten1, a.code_cat_energie, a.id_usage, a.id_branche, a.code_etab) = 
--- 	(b.an, b.id_comm, b.id_secten1, b.code_cat_energie, b.id_usage, b.id_branche, b.code_etab)
--- 	and a.id_polluant <> 131 and a.id_secten1 <> '8'
--- ;
--- */
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- /*
--- 
--- Calcul d'un champ SS à l'EPCI / an / secten1 / catégorie d'énergie
--- 
--- 1/ Calcul du SS théroque à l'EPCI (1 étab >= 85% conso ou < 3 etab)
--- 2/ Si on a du secret stat théorique à l'EPCI alors pas de diffusion de la donnée ss_epci = TRUE
--- 3/ Si on a pas de SS théorique à l'EPCI il faut vérifier que l'on ne puisse pas retrouver la valeur 
---    d'une commune en SS à partir de la valeur totale de son EPCI.
--- 4/ Si dans un EPCI sans SS théorique on a deux communes ou plus en SS alors diffusion de la donnée ss_epci = FALSE
--- 5/ Si dans un EPCI sans SS théorique on a une seule commune qui a du SS alors il faut pouvoir en passer une autre en SS
--- 6/ Si dans un EPCI sans SS théorique on a une seule commune qui a du SS mais au moins deux autres communes non SS 
---    alors on passe la conso la plus basse en SS et on diffuse la donnée ss_epic = FALSE
--- 7/ Si moins de deux autres communes sans SS alors pas de diffusion de la donnée ss_epci = TRUE
--- 8/ Tous ces calculs réalisés sur les consommations doivent ensuite être appliqués à tous les autres polluants
--- 9/ Dans CIGALE:
---    Si extraction comm where ss is false
---    Si extraction epci where ss_epci is false
--- */
--- 
--- -- Uniquement pour tests
--- -- update total.bilan_comm_v5_secten1 set ss = TRUE where memo = 'Secrétisation manuelle';
--- 
--- -- Création du champ final de secret stat à l'EPCI
--- alter table total.bilan_comm_v5_secten1 drop column if exists ss_epci;
--- alter table total.bilan_comm_v5_secten1 add column ss_epci boolean;
--- 
--- -- Création d'une table temporaire comportant tous les champs nécessaires au calcul du SS à l'EPCI
--- drop table if exists public.tmp_ss_epci;
--- create table public.tmp_ss_epci as 
--- with ss_epci as (
--- 	-- Calcul du SS à l'EPCI, an, secten1, cat_energie pour la consommation
--- 	select 
--- 		a.*, b.nb_etab, c.conso_epci,
--- 		conso_etab / nullif(conso_epci, 0) * 100. as pct_conso, 
--- 		case 
--- 			when (conso_etab / nullif(conso_epci, 0) * 100. >= 85 or nb_etab < 3) and code_cat_energie <> 0 then true 
--- 			else false 
--- 		end as ss_epci
--- 	from (
--- 		-- Somme des consos à l'établissement
--- 		select id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie, code_etab, sum(val) as conso_etab
--- 		from total.bilan_comm_v5_secten1
--- 		left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 		where id_polluant = 131 -- and an = 2015
--- 		group by id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie, code_etab
--- 	) as a
--- 	left join (
--- 		-- Calcul du nb etab à l'EPCI secten et énergie
--- 		select an, siren_epci_2017, id_secten1, code_cat_energie, sum(coalesce(nb_etab, 0)) as nb_etab
--- 		from  public.cigale_nb_etab as a
--- 		left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 		group by an, siren_epci_2017, id_secten1, code_cat_energie 
--- 	) as b using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- 	left join (
--- 		-- Calcul conso à l'EPCI secten et énergie
--- 		select an, siren_epci_2017, id_secten1, code_cat_energie, sum(val) as conso_epci
--- 		from total.bilan_comm_v5_secten1 as a
--- 		left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 		where a.id_polluant = 131
--- 		group by an, siren_epci_2017, id_secten1, code_cat_energie 
--- 	) as c using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- 	where 
--- 		code_etab <> '-999'
--- 		and code_cat_energie <> 8
--- 		-- FIXME: Et les clients GRT GAZ open data?
--- 	order by a.id_polluant, a.an, a.siren_epci_2017, a.id_secten1, a.code_cat_energie, a.code_etab
--- ),
--- nb_comm_ss as (
--- 	-- nb comm avec secret stat par epci
--- 	select id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie, count(id_comm) as nb_comm_ss
--- 	from (
--- 		select id_polluant, an, id_comm, id_secten1, code_cat_energie
--- 		from total.bilan_comm_v5_secten1 
--- 		where ss is true and id_polluant = 131
--- 	) as a
--- 	left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 	group by id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie
--- ), 
--- nb_comm_noss as (
--- 	-- nb comm sans secret stat par epci
--- 	select id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie, count(id_comm) as nb_comm_noss
--- 	from (
--- 		select id_polluant, an, id_comm, id_secten1, code_cat_energie
--- 		from total.bilan_comm_v5_secten1 
--- 		where ss is false and id_polluant  = 131
--- 	) as a
--- 	left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 	group by id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie
--- ),
--- conso_min_comm_epci as (
--- 	-- Conso la plus faible des communes d'un EPCI par an, secten1, cat energie qui ne sont pas en SS comm
--- 	select *
--- 	from (
--- 		select 
--- 			an, siren_epci_2017, id_secten1, code_cat_energie, id_comm, val, rank()
--- 			OVER (PARTITION BY an, siren_epci_2017, id_secten1, code_cat_energie ORDER BY val DESC) as tri
--- 		from (
--- 			select 
--- 				an, siren_epci_2017, id_secten1, code_cat_energie, id_comm, sum(val) as val	
--- 			from total.bilan_comm_v5_secten1 as a
--- 			left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- 			where a.id_polluant = 131 and ss is false
--- 			group by an, siren_epci_2017, id_secten1, code_cat_energie, id_comm
--- 		) as a
--- 	) as a
--- 	where tri = 1
--- ),
--- stats_ss_epci as (
--- select a.*, ss_epci_true, case when ss_epci_true is not null then true else false end as ss_epci
--- from (		
--- 	select distinct a.id_polluant, a.an, a.siren_epci_2017, a.id_secten1, a.code_cat_energie, nb_comm_ss, nb_comm_noss 
--- 	from ss_epci as a
--- 	left join nb_comm_ss as b using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- 	left join nb_comm_noss as c using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- -- 	where 
--- -- 		ss_epci is true
--- 		-- and siren_epci_2017 = 200035319 and id_secten1 = '2' and code_cat_energie = 8 and an = 2013	
--- ) as a
--- left join (
--- 	select a.id_polluant, a.an, a.siren_epci_2017, a.id_secten1, a.code_cat_energie, nb_comm_ss, nb_comm_noss, true as ss_epci_true
--- 	from ss_epci as a
--- 	left join nb_comm_ss as b using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- 	left join nb_comm_noss as c using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- 	where 
--- 		ss_epci is true
--- 		-- and siren_epci_2017 = 200035319 and id_secten1 = '2' and code_cat_energie = 8 and an = 2013
--- ) as b using (id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie)
--- -- On lie toutes les statistiques calculées
--- -- 	select a.*, b.nb_comm_ss, c.nb_comm_noss
--- -- 	from ss_epci as a
--- -- 	left join nb_comm_ss as b using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- -- 	left join nb_comm_noss as c using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- -- 	where siren_epci_2017 = 200035319 and id_secten1 = '2' and code_cat_energie = 8 and an = 2013
--- )
--- -- On crée la table temporaire en calculant un champ SS_epci temporaire en fonction du cas de figure
--- select 
--- 	a.*,
--- 	case 
--- 		when ss_epci is true then 'true' -- SI SS à l'EPCI alors SS
--- 		when ss_epci is FALSE and nb_comm_ss >= 2 then 'false' -- Si pas SS à l'EPCI et >2 communes SS alors noSS
--- 		when ss_epci is FALSE and (nb_comm_ss < 2 or nb_comm_ss is null) and nb_comm_noss >= 2 then '?'
--- 	end as ss_epci_tmp,
--- 	b.id_comm as id_comm_to_ss
--- from stats_ss_epci as a
--- left join conso_min_comm_epci as b using (an, siren_epci_2017, id_secten1, code_cat_energie)
--- order by an, siren_epci_2017, id_secten1, code_cat_energie
--- ;
--- 
--- /**
--- select *
--- from public.tmp_ss_epci
--- order by id_polluant, an, siren_epci_2017, id_secten1, code_cat_energie
--- limit 300
--- */
--- 
--- -- Calcul du champ ss_epci dans la table officielle
--- -- Ce calcul est effectué pour tous les polluants
--- update total.bilan_comm_v5_secten1 as a
--- set ss_epci = case 
--- 	when b.ss_epci_tmp = 'true' then true
--- 	when b.ss_epci_tmp = 'false' then False
--- 	when b.ss_epci_tmp = '?' and id_comm_to_ss is not null then False
--- end 
--- from commun.tpk_commune_2015_2016 as c, public.tmp_ss_epci as b
--- where 
--- 	(a.an, a.id_secten1, a.code_cat_energie) 
--- 	= (b.an, b.id_secten1, b.code_cat_energie)
--- 	and a.id_comm = c.id_comm
--- 	and c.siren_epci_2017 = b.siren_epci_2017
--- ;
--- 
--- -- Secrétisation d'une commune quand nécessaire
--- update total.bilan_comm_v5_secten1 as a
--- set ss = true, memo = 'Secrétisation manuelle'
--- where (an, id_secten1, code_cat_energie, id_comm) in (
--- 	select distinct an, id_secten1, code_cat_energie, id_comm_to_ss
--- 	from public.tmp_ss_epci
--- 	where ss_epci_tmp = '?' and id_comm_to_ss is not null
--- );
--- 
--- -- Si pas d'établissements bdrep pour une année / epci / secten / cat énergie 
--- -- alors ss_epci = false
--- update total.bilan_comm_v5_secten1 as a
--- set ss_epci = FALSE
--- where ss_epci is null;
--- 
--- /* 
--- VALIDATIONS
--- -- Vérifier qu'on ait une valeur SS_EPCI unique pour un EPCI, an, id_secten1, code_cat_energie
--- select an, siren_epci_2017, id_secten1, code_cat_energie, count(ss_epci) as validation
--- from (
--- 	select distinct an, siren_epci_2017, id_secten1, code_cat_energie, ss_epci
--- 	from total.bilan_comm_v5_secten1 as a
--- 	left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- ) as a
--- group by an, siren_epci_2017, id_secten1, code_cat_energie
--- order by validation desc
--- 
--- -- On regarde quelles sont les données en SS EPCI ou non
--- select distinct an, id_secten1, code_cat_energie, b.siren_epci_2017, ss_epci
--- from total.bilan_comm_v5_secten1 as a
--- left join commun.tpk_commune_2015_2016 as b using (id_comm)
--- where id_polluant = 131 and ss_epci is false
--- order by an, id_secten1, code_cat_energie, b.siren_epci_2017, ss_epci
--- */
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
--- 
-
-
-
+/**
+Suppression des données hors années d'inventaire
+*/
+delete from total.bilan_comm_v5_pcaet where an in (2009,2009,2011);
 
 
 




/** 
Récupération du nombre d'établissements (Uniquement si nécessaire, long)
- Secteur industriel
- Secteur tertiaire
- Avec affectation d'un SESCTEN1 et catégorie d'énergie
- Les arrondissements de marseille sont transformés en 13055

NOTE: Pour certains etablissement on a un id_etablissement = -999. L'ensemble de ces 
	  établissements ne représentera qu'un seul étab.
FIXME: On ne ferme aucun établissement dans le film. Du coup, on en a de plus en plus?

-- si besoin de faire une backup de la version précédente: 
-- create table public.cigale_nb_etab_backup as select * from public.cigale_nb_etab;
drop table if exists public.cigale_nb_etab;
create table public.cigale_nb_etab as 
select an, case when id_comm between 13201 and 13216 then 13055 else id_comm end as id_comm, id_secten1, code_cat_energie, count(*) as nb_etab
from (

	-- Sélection des établissements industriels dont on connait l'id (!= -999)
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2016 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2016 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all	
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2015 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2015 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2014 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2014 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2013 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2013 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2012 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2012 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2010 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2010 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)
	union all
	select distinct an, a.id_comm, case when a.id_etablissement = -999 then code_gerep else a.id_etablissement::text end as id_etablissement, id_snap3, id_energie from total_ind.bilan_comm_v7_2007 as a left join src_ind.def_corresp_sources as b using (id_corresp) where (a.id_etablissement <> -999 or a.id_corresp is not null) and an = 2007 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 6 or b.id_version_corresp is null)

-- 	union all

-- 	-- Sélection des établissements tertiaire dont on connait l'id (!= -999)
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2015 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2015 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)
-- 	union all
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2014 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2014 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)
-- 	union all
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2013 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2013 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)
-- 	union all
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2012 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2012 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)
-- 	union all
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2010 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2010 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)
-- 	union all
-- 	select distinct an, a.id_comm, b.code_gerep, id_snap3, id_energie from total_ter.bilan_comm_v5_2007 as a left join src_ind.def_corresp_sources as b using (id_corresp) where id_corresp <> -999 and an = 2007 and (b.actif is true or b.actif is null) and (b.id_version_corresp = 5 or b.id_version_corresp is null)

) as a
-- Lien avec les catégories d'énergie
left join total.corresp_energie_synapse as b on a.id_energie = b.espace_id_energie
left join transversal.tpk_energie as c on b.synapse_id_energie = c.id_energie
left join total.corresp_snap_synapse as d on a.id_snap3 = d.espace_id_snap3
left join transversal.tpk_snap3 as e on d.synapse_id_snap3 = e.id_snap3
where 
	-- Corresp multiples uniquement pour 60405 qu'on ne retrouve que dans ind et pas ter. 
	-- On conserve uniquement la correspondance ind.
	d.specificite is null or d.synapse_id_snap3 = '06040502'
group by an, case when id_comm between 13201 and 13216 then 13055 else id_comm end, id_secten1, code_cat_energie;
*/


/* Validations
select an, sum(nb_etab) 
from public.cigale_nb_etab
group by an
order by an;

select an, id_secten1, code_cat_energie, sum(nb_etab) 
from public.cigale_nb_etab
group by an, id_secten1, code_cat_energie
order by an, id_secten1, code_cat_energie;
*/

/**
Création de la table des émissions par secten 1 et catégorie d'énergie
- Récupération des données emi et élec de la table bilan
- Récupération des données GES séparées dans vue ges bilan
- On a des valeurs nulles dans les tables bilans de chaque schéma de calcul

mais au format PCAET et non SECTEN 1

Suppression du secret statistique du calcul
Ce script doit-être lancé après espace2cigale_vX.sql

* Utilisation:
Si utilisé avec PgAdmin, lancer tout le code avec PgScript (pour que les commandes soient passées une par une)
