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