bonjour,
voici quelques précisions concernant ma requête:
j'ai une base de donnée ORACLE.
Dans un premier temps je veux crée une table (STATIQUE) à partir de plusieurs autres tables (PASS,LOCINFO,LOCAL,SALLE,ORIENT).
A ma table TAB je dois rajouté les champs DATE_SORTIE et DUREE_SEJOUR(DATE_SORTIE-DATE_ENTREE) par secteur.
En utilisant la requête LEFT JOIN:
le résultat est le suivant:
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 CREATE TABLE STATIQUE AS SELECT TAB.NUM, TAB.DATE_ENTREE, TAB.SECTEUR, MIN(TABB.DATE_ENTREE) AS DATE_SORTIE FROM (SELECT P.NUM, P.STATUT, I.DATE_ENTREE, L.SECTEUR, O.DESTINATION FROM PASS P, LOCINFO I, LOCAL C, SALLE L, ORIENT O WHERE P.CODE = C.CODE_P AND P.CODE = O.CODE_P AND C.CODE = I.CODE_LOC AND L.CODE_SAL = I.SALL AND O.MODIF_DATE = ( select max(O.MODIF_DATE) from ORIENT O where P.CODE = O.CODE_P ) ) TAB LEFT JOIN (SELECT P.NUM, P.STATUT, I.DATE_ENTREE, L.SECTEUR, O.DESTINATION FROM PASS P, LOCINFO I, LOCAL C, SALLE L, ORIENT O WHERE P.CODE = C.CODE_P AND P.CODE = O.CODE_P AND C.CODE = I.CODE_LOC AND L.CODE_SAL = I.SALL AND O.MODIF_DATE = ( select max(O.MODIF_DATE) from ORIENT O where P.CODE = O.CODE_P ) ) TABB ON TAB.NUM = TABB.NUM AND TAB.SECTEUR=TABB.SECTEUR AND TABB.DATE_ENTREE > TAB.DATE_ENTREE GROUP BY TAB.NUM, TAB.DATE_ENTREE, TAB.SECTEUR ;
sachant que j'ai 4 secteut: sect1,sect2,sect3,sortie
je dois rajouté la durée de séjour par secteur et groupé les secteur pour chaque valeur du champ NUM
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 NUM DATE_ENTREE SECTEUR DATE_SORTIE -------------------------------------------------------------------- 1 13/02/05 14:15 sect1 13/02/05 16:25 1 13/02/05 16:25 sect2 14/02/05 09:05 1 14/02/05 09:05 sect2 14/02/05 16:50 1 14/02/05 16:50 sortie 2 13/02/05 17:15 sect1 13/02/05 19:25 2 13/02/05 19:25 sect2 17/02/05 09:05 2 17/02/05 09:05 sect3 17/02/05 16:50 2 17/02/05 16:50 sortie 3 10/01/05 17:15 sect1 13/01/05 19:25 3 13/01/05 19:25 sect2 17/01/05 09:05 3 17/01/05 09:05 sect2 17/01/05 16:50 3 17/01/05 16:50 sect2 17/01/05 16:55 3 17/01/05 16:55 sortie
exemple : pour le NUM 3 obtenir:
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 3 10/01/05 17:15 sect1 13/01/05 19:25 3 13/01/05 19:25 sect2 17/01/05 16:55 3 17/01/05 16:55 sortie
Partager