Bonjour ,
voici mon problème
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 create OR REPLACE FUNCTION controle(cd_collab number) retrun nbe_jours is cursor cur_collab is SELECT a.cd_collab,cd_absence,dat_deb,dat_fin INTO collab,datd,datf from absence a,demande_absence d where d.CD_DEM_ABS=a.CD_DEM_ABS and d.CD_ETAT= 4 and a.CD_MOTIF in (2,3) and d.DAT_DEMANDE >='01/02/2012' order by d.cd_collab,cd_absence asc var_collab cur_collab%rowTYPE; var_absence cur_collab%rowTYPE; BEGIN loop // ici je veux selectionner la date de fin la plus grande de chaque collaborateur (exp pour le cd_collab 175 prendre la date 03/07/2012 select max(dat_fin) from cur_collab where cd_collab= var collab ; if max(dat_fin) = dat_deb -1 then nbr_jours := dat_fin - dat_deb; else nbr_jours := dat_fin -dat_deb; end if ; return nbr_jours
Partager