Bonjour à tous,

Je rencontre actuellement un problème sur l'une de mes requêtes : je cherche en effet à créer une vue me permettant d'afficher des consommations de la semaine précédente et des productions, ainsi qu'un bilan des deux (production-consommation).

Pour ce faire, j'utilise la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
select 1 id, 'Energie produite' energie, pd.prd_valeur valeur, pd.prd_date jour from wbx_prod pd
where pd.prd_date BETWEEN trunc(sysdate, 'iw') - 7
                    AND trunc(sysdate, 'iw') - 1/24/60/60
union
select 2 id, 'Energie consommée' energie, sum(cs.cso_valeur) valeur, cs.cso_date jour from gtc_conso cs
where cs.cso_date BETWEEN trunc(sysdate, 'iw') - 7
                    AND trunc(sysdate, 'iw') - 1/24/60/60
group by cs.cso_date
union
select 3, 'Bilan énergétique' energie, sum(valeur), jour from (
select 1 id, 'Energie produite' energie, pd.prd_valeur valeur, pd.prd_date jour from wbx_prod pd
where pd.prd_date BETWEEN trunc(sysdate, 'iw') - 7
                    AND trunc(sysdate, 'iw') - 1/24/60/60
union
select 2 id, 'Energie consommée' energie, -cs.cso_valeur valeur, cs.cso_date jour from gtc_conso cs
where cs.cso_date BETWEEN trunc(sysdate, 'iw') - 7
                    AND trunc(sysdate, 'iw') - 1/24/60/60
)
group by jour
order by id
;
Le problème est que je n'ai pas toutes les semaines le même nombre de données de consommations que de production. L'opération ne peut alors pas s'effectuer, puisqu'il n'y a pas le même nombre de champs dans les 2 colonnes.
Auriez-vous une idée de comment je pourrais modifier ma requête afin d'avoir (0 - conso) s'il manque la donnée de production et (prod - 0) s'il manque la donnée de conso ?

Pour info, voici la structure de ma table gtc_conso :
"Column Name" "Data Type" "Nullable" "Data Default" "COLUMN ID" "Primary Key" "COMMENTS"
"ID_CONSO" "NUMBER(10,0)" "No" "" "1" "1" "Identifiant de la consommation"
"CSO_VALEUR" "NUMBER(8,1)" "No" "" "2" "" "Valeur de consommation (en kWh)"
"FK_TYPE_CSO" "NUMBER(10,0)" "No" "" "3" "" "ID du type de consommation, cle etrangere se rapportant a la table CTRL_TYPE_CSO"
"CSO_DATE" "DATE" "No" "" "4" "" "Date du releve de consommation"
et celle de ma table wbx_prod :
"Column Name","Data Type","Nullable","Data Default","COLUMN ID","Primary Key","COMMENTS"
"ID_PROD","NUMBER(10,0)","No","","1","1","Identifiant de la production"
"PRD_VALEUR","NUMBER(8,1)","No","","2","","Valeur de la production (en kWh)"
"FK_TYPE_PRD","NUMBER(10,0)","No","","3","","ID du type de production, cle etrangere se rapportant a la table CTRL_TYPE_PRD"
"PRD_DATE","DATE","No","","4","","Date du releve de consommation"
Merci d'avance !