Bonjour,
soit une table T1 donnée

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
CREATE TABLE T1 (COL01 VARCHAR2(05),COL02 VARCHAR2(05),COL03 VARCHAR2(05),COL04 VARCHAR2(05));
 
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '001', '25', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('00', '005', '20', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '005', '20', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '005', '20', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '005', '20', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '005', '20', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('01', '006', '80', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('02', '001', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
INSERT INTO T1 (COL01, COL02, COL03, COL04) VALUES ('03', '002', '01', '1');
Pourriez-vous m'aider à approcher le plus possible du résultat suivant (=tableau croisé EXCEL) via un SELECT et\ou une procédure PL\SQL ?



http://www.freeimagehosting.net/1x2it
J’ai tenté un ROLLUP mais c’est toujours pas ce qu’il me faut.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
SELECT  
DECODE(GROUPING(COL01), 1, 'ALL COL01', COL01) AS COL01,
DECODE(GROUPING(COL02), 1, 'ALL COL02', COL02) AS COL02,
DECODE(GROUPING(COL03), 1, 'ALL COL03', COL03) AS COL03,
COUNT(COL04) AS COUNT_COL04
FROM T1   
GROUP BY ROLLUP (COL01,COL02,COL03)  
ORDER BY COL01,COL02,COL03;
 
 
COL01     COL02     COL03     COUNT_COL04
--------- --------- --------- -----------
ALL COL01 ALL COL02 ALL COL03         140 
00        ALL COL02 ALL COL03          52 
00        001       ALL COL03          13 
00        001       01                  6 
00        001       25                  7 
00        002       ALL COL03          38 
00        002       01                 38 
00        005       ALL COL03           1 
00        005       20                  1 
01        ALL COL02 ALL COL03          73 
01        001       ALL COL03           6 
01        001       01                  6 
01        002       ALL COL03          55 
01        002       01                 55 
01        005       ALL COL03           4 
01        005       20                  4 
01        006       ALL COL03           8 
01        006       80                  8 
02        ALL COL02 ALL COL03           6 
02        001       ALL COL03           6 
02        001       01                  6 
03        ALL COL02 ALL COL03           9 
03        002       ALL COL03           9 
03        002       01                  9