Bonjour à tous,

Je souhaiterai compter le nombre de ligne dans une table selon une date et une heure et afficher le résultat en incluant les heures ou il n'y a aucune transaction.

Voici un exemple :

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
22
 
WITH CALENDAR_MARCH AS
(
SELECT '10/03' AS DAYS, '12H' AS HOURS    FROM DUAL UNION ALL
SELECT '10/03'        , '12H'             FROM DUAL UNION ALL
SELECT '10/03'        , '13H'             FROM DUAL UNION ALL
SELECT '10/03'        , '14H'             FROM DUAL UNION ALL
SELECT '10/03'        , '14H'             FROM DUAL
), CT AS 
(
select DAYS, HOURS, ROW_NUMBER() over (partition by DAYS, HOURS order by DAYS ASC, HOURS ASC) nb_transactions from CALENDAR_MARCH
)
select DAYS, HOURS, count(nb_transactions) from CT group by DAYS, HOURS order by DAYS ASC, HOURS ASC;
 
le résultat me donne :
 
DAYS	HOURS	COUNT(NB_TRANSACTIONS)
 
10/03	11H	1
10/03	12H	1
10/03	13H	1
10/03	14H	2
Je cherche a obtenir un résultat du type :

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
 
DAYS	HOURS	COUNT(NB_TRANSACTIONS)
 
10/03	00H	0
10/03	01H	0
10/03	02H	0
10/03	03H	0
10/03	04H	0
10/03	05H	0
..etc
10/03	11H	1
10/03	12H	1
10/03	13H	1
10/03	14H	2
..etc
Des idées?
J'ai cherché du coté du over partition by , des cases, mais je ne trouve rien qui me permettent d'obtenir un affichage souhaité...