Bonjour à tous,

J'ai actuellement un souci avec une requête SQL sur ma base Oracle 10g :

Dans cette base sont poussées tous les jours 5 types de données de consommation.
Je cherche à afficher les données de consommation pour l'année précédente, pour ces 5 types, plus un total de ces consommations.

Or, comme pour l'instant, aucune valeur n'existe pour l'année dernière, les valeurs qui me sont retournées sont nulles. Je n'obtiens donc rien à l'affichage. Mais j'aimerais quand même que soient affichées mes 6 lignes avec pour valeur "0".

J'ai donc utilisé cette requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT ctrl_type_cso.type_cso "Type de consommation", sum(gtc_conso.cso_valeur) "Année précédente"
FROM gtc_conso, ctrl_type_cso
WHERE to_number(to_char(cso_date,'YYYY')) = to_number(to_char(sysdate,'YYYY'))-1
AND gtc_conso.fk_type_cso = ctrl_type_cso.id_type_cso
group by ctrl_type_cso.type_cso
union
SELECT 'Total' "Type de consommation", sum(gtc_conso.cso_valeur)
FROM gtc_conso, ctrl_type_cso
WHERE to_number(to_char(cso_date,'YYYY')) = to_number(to_char(sysdate,'YYYY'))-1
AND gtc_conso.fk_type_cso = ctrl_type_cso.id_type_cso
group by to_char(gtc_conso.cso_date,'MONTH')
order by "Type de consommation"
;
et essayé d'y ajouter des NVL, mais rien n'y fait...

Je précise aussi 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 de ma table ctrl_type_cso :

"Column Name" "Data Type" "Nullable" "Data Default" "COLUMN ID" "Primary Key" "COMMENTS"
"ID_TYPE_CSO" "NUMBER(10,0)" "No" "" "1" "1" "Identifiant du type de consommation"
"TYPE_CSO" "VARCHAR2(50 BYTE)" "No" "" "2" "" "Type de consommation (provenance)"
J'espère vous avoir donné tous les éléments nécessaires.
J'ai planché sur le sujet pendant un moment, fait des recherches, mais en vain.

Auriez-vous une idée pour m'aider ?

Merci d'avance !