Salut a tous,
J'étudie actuellement le fonctionnement des vues et voici le point sur lequel
je bloque: je dois créer une vue pour effectuer un comptage mais le problème est qu'il n'est pas possible d'utiliser des fonctions comme GROUP BY, DISTINCT et ROWNUM...:cry:
Quelle serait donc le(s) alternative(s) pour y parvenir?
Voici plus précisément mon cas détaillé:
Travaille sur Oracle iSQL*Plus
Ma table DDL:
Puis quelques valeurs pour l'exemple:Code:
1
2
3
4
5 CREATE TABLE jobs_agents ( agent_id NUMBER(4), job_id NUMBER(4) );
Code:
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 INSERT INTO JOBS_AGENTS VALUES (1,6); INSERT INTO JOBS_AGENTS VALUES (1,13); INSERT INTO JOBS_AGENTS VALUES (1,17); INSERT INTO JOBS_AGENTS VALUES (2,3); INSERT INTO JOBS_AGENTS VALUES (2,8); INSERT INTO JOBS_AGENTS VALUES (2,9); INSERT INTO JOBS_AGENTS VALUES (2,14); INSERT INTO JOBS_AGENTS VALUES (3,15); INSERT INTO JOBS_AGENTS VALUES (3,16); INSERT INTO JOBS_AGENTS VALUES (3,22); INSERT INTO JOBS_AGENTS VALUES (3,24); INSERT INTO JOBS_AGENTS VALUES (4,1); INSERT INTO JOBS_AGENTS VALUES (4,2); INSERT INTO JOBS_AGENTS VALUES (5,7); INSERT INTO JOBS_AGENTS VALUES (5,10); INSERT INTO JOBS_AGENTS VALUES (6,23); INSERT INTO JOBS_AGENTS VALUES (7,11); INSERT INTO JOBS_AGENTS VALUES (7,17); INSERT INTO JOBS_AGENTS VALUES (8,25); INSERT INTO JOBS_AGENTS VALUES (9,4); INSERT INTO JOBS_AGENTS VALUES (9,5); INSERT INTO JOBS_AGENTS VALUES (10,12); INSERT INTO JOBS_AGENTS VALUES (11,19); INSERT INTO JOBS_AGENTS VALUES (11,20); INSERT INTO JOBS_AGENTS VALUES (11,21); INSERT INTO JOBS_AGENTS VALUES (11,26);
Maintenant l'information DML que je dois isoler:
Evidement, lorsque je cré la vue, celle-ci échoue fatalement à cause de la fonction GROUP BY:evilred::Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT agent_id, COUNT(job_id) FROM jobs_agents GROUP BY agent_id ORDER BY agent_id;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE VIEW jobs_per_agent AS ( SELECT agent_id, COUNT(job_id) FROM jobs_agents GROUP BY agent_id ORDER BY agent_id );
8OSi quelqu'un a une solution, qu'il n'hésite pas!
Merci pour vos réponses. a+